read file from specific position
Show older comments
hi,
I have this file:
882359 81 1.5
882359 926 1
882359 1349 2
882359 2270 1
882359 3065 5
I want for example read this file but from third row, i used fseek but not useful thanks
Answers (1)
Walter Roberson
on 10 Nov 2011
0 votes
There is no way to position directly to particular rows in a text file whose lines are variable length.
Not, that is, without having read it in once first and created an index of where each row begins. (Which can be worth doing if you read the file far more often than you write to it.)
(textscan() has a HeaderLines option, which reads the header lines and throws them away for you.)
5 Comments
huda nawaf
on 10 Nov 2011
Walter Roberson
on 10 Nov 2011
textscan() will *not* return just one line. On the other hand, your textscan would be failing because you are attempting to match the literal character 'u' as a fourth field, with the third field being a string. There is no %su format item. If you want your third field to be read as an unsigned 8 bit integer, use %u8 as the format item.
http://www.mathworks.com/help/techdoc/ref/textscan.html
Kelly Kearney
on 10 Nov 2011
Textscan will read until either the end of the file, or until the format specifier no longer matches the text it's trying to parse. I'm not sure what you really meant by the '%su' format, but that's probably what textscan is stumbling over.
Your example data doesn't seem to match your example textscan line, so I can't help you figure out what the format should be.
Walter Roberson
on 10 Nov 2011
Good point, Kelly -- the third field is a floating point number, not a uint8 or the like.
I also see that there are no commas between the fields, such as would be expected by the 'Delimiter', ',' parameter that Huda is using.
Looks like the appropriate command would be
c = textscan(f, '%f%f%f', 'HeaderLines',5);
huda nawaf
on 10 Nov 2011
Categories
Find more on Low-Level File I/O in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!