FGETL taking a long time to execute
11 views (last 30 days)
Show older comments
I am running fgetl in a loop similar to the code below. When profiling the code, I noticed that fgetl(fid) takes the most time to execute compared to the rest of the code. After checking the fgetl documentation, I found the following note in the documentation:
fgetl is intended for use with files that contain newline characters. Given a file with no newline characters, fgetl may take a long time to execute.
However, the documentation does not provide a solution for files without newline characters. Since my file lacks newline characters, what would be the best alternative to fgetl?
fid = fopen(FileName);
while ischar(tline) %loops over 1e5 times
% read new line
tic
tline = fgetl(fid);
toc
% Do stuff with tline
end
0 Comments
Accepted Answer
Matt J
on 30 Jan 2025
5 Comments
Walter Roberson
on 30 Jan 2025
You could experiment with using
cell2mat(textscan(FID, '%[^\n]', BUFFERSIZE))
to read BUFFERSIZE lines. It might potentially be faster than calling fgetl() BUFFERSIZE times, due to reduced overhead.
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements 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!