FGETL taking a long time to execute
7 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Matt J
2025 年 1 月 30 日
5 件のコメント
Walter Roberson
2025 年 1 月 30 日
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.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!