我有一个逐行格式化的文件,文字和数字如下:
junk
junk
1 2 3 4 5 6 7 8 9 10
junk
.
.
junk
1 2 3 4 5 6 7 8 9 10
junk
我想只读取包含10列数字1:10的行。
我目前有一个像这样的解决方案:
fid = fopen(file)
while 1
tline = fgetl(file)
line = sscanf(tline, repmat('%f',1,10));
if ~isempty(line)
do stuff
end
if feof(fid)
break
end
end
问题是文件长达20,000行,我必须在5,000个文件上执行此操作 - 因此运行需要很长时间。我想知道MATLAB中是否有更快的解决方案?
编辑:在文本文件中的20,000行中,其中4,000行将使用我感兴趣的10列数字进行格式化,其余(“垃圾”)具有各种文本/符号/其他数字数据。它们在每个文件之间也不一致。