I have some data that's formatted as follows:
dtau E_av variance N_sims Time
0.001 0.497951 0.000211625 25 Sun Apr 3 18:18:12 2011
dtau E_av variance N_sims Time
0.002 0.506784 0.000173414 25 Sun Apr 3 18:18:58 2011
Now I want to read the first 4 columns (anything but the time) of every third line into MATLAB using textscan; after using fid = fopen('data.text')
, I basically have to loop this:
results = textscan(fid, '%f %f %f %f', 1,'headerlines',1);
Any ideas? Cheers!
fgets
reads until the end of a line, and returns the text on that line. So, just call it twice to skip two lines (discarding the return value of the function).Since you know you will have 5 column labels (i.e. strings) followed by 4 numeric values followed by 5 strings (e.g.
'Sun'
,'Apr'
,'3'
,'18:18:12'
, and'2011'
), you can actually read all of your numeric data into a single N-by-4 matrix with one call to TEXTSCAN: