Import .txt data into CELL ARRAY

2 次查看(过去 30 天)
Philip
Philip 2018-9-17
评论: Philip 2018-9-25
I have text files with arrays of data:
{ Centroid = [[1 0 1],[0 1 0]] Ages= [10 20 30],Times = [ 3:00, 3:05] }
->Exact example, text file includes enclosed brackets '{ }'
I need to import this data into a (cell array?) in MATLAB, so that I can call the various labels and access their data.
  2 个评论
Paolo
Paolo 2018-9-17
What would the desired cell array look like?
Philip
Philip 2018-9-17
I don't have a particular idea, but some type of table in which I could call chunks of data.
'Centroid'
{[0 1 1]}
{[2 1 3]}
Etc: I'm not super familiar with Tables in MATLAB

请先登录,再进行评论。

回答(1 个)

Paolo
Paolo 2018-9-17
Try something like this:
raw = fileread('mytextfile.txt');
[~,tok]=regexp(raw,'([A-Z][a-z]+).*?(\[.*?(?=[ ,][A-Z}]))','match','tokens');
tokens = [tok{:}];
varnames = tokens(1:2:end);
data = tokens(2:2:end);
cell2table(data,'VariableNames',varnames)
1×3 table
Centroid Ages Times
___________________ ____________ _______________
'[[1 0 1],[0 1 0]]' '[10 20 30]' '[ 3:00, 3:05]'
  6 个评论
Philip
Philip 2018-9-20
That's intense, thanks, I will have to play with it and lookup documentation to understand each component of this.
Philip
Philip 2018-9-25
Question on output: Can you now call specific parts from the table? How would you do that: example
answer = table('Ages',array[0])
...
(answer = 10)
Would it be better/easier to use textscan? Especially for text files that are just one big array of numbers?
Thanks!

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

产品


版本

R2017b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by