isolate separate portions of a ASCII/TEXT FILE which have results for different time stamps
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
shadman khan
am 26 Aug. 2019
Kommentiert: shadman khan
am 25 Sep. 2019
i have an ascii file which can be read as text file in matlab
this file contains a number of columns (say 10 or 11) with different names(headers given in the file.
these columns are produced after different time intervals.
so basically, i have a different set of results in different separate sections of the file
What i WANT?? : I want to write these sections into separate files and read each of these columns in order to plot graphs etc.
plz help me guys
thanks in advance
2 Kommentare
Walter Roberson
am 28 Aug. 2019
regexp() to delete the first line. Then regexp() 'ZONE', 'split' . After that you can textscan() each block
Akzeptierte Antwort
Walter Roberson
am 22 Sep. 2019
filename = 'Plot_Data_Elem.txt';
fileblocks = regexp(fileread(filename), 'ZONE', 'split');
nblocks = length(fileblocks);
vstr = regexprep(fileblocks{1}, 'Variables\s*=\s*', '', 'once');
vstr = regexprep(vstr, '\s*$', '', 'once'); %in case of trailing whitespace
vars = regexp(vstr, '\s+', 'split');
nvars = length(vars);
fmt = repmat('%f', 1, nvars);
C = cell(nblocks-1,1);
for K = 2 : nblocks
C{K-1} = array2table(cell2mat(textscan(fileblocks{K}, fmt, 'HeaderLines', 1, 'CollectOutput', true)), 'VariableNames', vars);
end
With that example file, this gives an 8 x 1 cell array, each entry of which is a 12 x 16 table object with each column labeled according to the variables mentioned in the first line of the input file.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Text Files finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!