I'm reading in a formatted text data file and pulling data from it. Every so often there is a break in the data and its 4 lines long. I'm reading the lines with "fgetl" and right now to skip those lines I just use
for i = 1:4
line = fgetl(fileID);
end
This seems terribly inefficient and brute force. Is there a better way?
--Clarification The skipped lines have information in them, just information I don't use. I'm also trying to avoid saving any information temporarily for the skipped lines.

1 Kommentar

Cedric
Cedric am 7 Aug. 2015
Bearbeitet: Cedric am 7 Aug. 2015
Could you give an example of both types of lines and define the elimination criterion?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 7 Aug. 2015

2 Stimmen

Repeated fgetl() is going to be more efficient than what the others have shown here when you are working with text files. fgetl() is a low-level routine that talks directly to the I/O stream used by the operating system libraries.
If you were working with non-text files (that is you did not use the 't' flag when you opened them) and if you knew exactly how many bytes the 4 lines occupied in total including the line delimiters, then you could fseek() forward that many bytes.

Weitere Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 7 Aug. 2015
Bearbeitet: Azzi Abdelmalek am 7 Aug. 2015

0 Stimmen

You can use textscan
fid=fopen('fic.txt');
str=textscan(fid,'%s','HeaderLines',5,'delimiter','\r\n');
fclose(fid)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by