Fastest way to read in large mixed text file?

11 views (last 30 days)
K E on 4 Nov 2016
Answered: Star Strider on 4 Nov 2016
I have an ASCII file with 300000 lines with the following format:
01-01-1979T00:00:00 722816.000000 128.783100 0.027240 0.000000 2.212400 1.535800 290.701000 2.570600 0.941000
I would like to read the lines in as follows:
  • Column 1 skip
  • Column 2 read in as number (actually datenum times)
  • Columns 3-10 read in as numbers
I can read this in using textscan thanks to code generated by the Matlab file import tool, but am wondering if there is a faster way.

Answers (1)

Star Strider
Star Strider on 4 Nov 2016
You can easily write your own textscan call:
fidi = fopen('filename.txt',rt');
data = textscan(fidi, ['%*s' repmat('%f',1,9)], 'CollectOutput'1);
See the documentation for textscan for other options and name-value pair arguments you may need to read your file.
NOTE I do not have your file to test with it, so this is UNTESTED CODE.


Community Treasure Hunt

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

Start Hunting!