isolate separate portions of a ASCII/TEXT FILE which have results for different time stamps

1 次查看(过去 30 天)
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 个评论
shadman khan
shadman khan 2019-9-22
I tried this code. But not getting the result.
fileID = fopen('Plot_Copy','r');
temp2 = regexp(fileread('Plot_Copy'), 'ZONE', 'split');
C = textscan(fileID,'%f',34);
fclose(fileID);
Can you please help me for using textscan?

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2019-9-22
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.
  1 个评论
shadman khan
shadman khan 2019-9-25
my goodness
this couldn't have been done in a better way
all i need o now, irs to store eah of this 12x16 table object into a different file and i am done...
thanks Robert

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by