Import .txt data into CELL ARRAY
Ältere Kommentare anzeigen
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.
Antworten (1)
Paolo
am 17 Sep. 2018
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 Kommentare
Paolo
am 18 Sep. 2018
I am happy to explain but before doing so can you just confirm that the output table is what you are after?
Philip
am 18 Sep. 2018
Paolo
am 18 Sep. 2018
The second line of code is a regular expression. It can be used to match pattern in strings. In the regular expression, there are two capturing groups. Those are used to extract the name of the variable and the data itself.
Please note that I am assuming that this pattern is consistent across your entire text file.
Philip
am 20 Sep. 2018
Philip
am 25 Sep. 2018
Kategorien
Mehr zu Text Data Preparation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!