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

2 views (last 30 days)
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 Comments
Walter Roberson
Walter Roberson on 28 Aug 2019
regexp() to delete the first line. Then regexp() 'ZONE', 'split' . After that you can textscan() each block
shadman khan
shadman khan on 22 Sep 2019
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?

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 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.
  1 Comment
shadman khan
shadman khan on 25 Sep 2019
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

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!