我有一个这样的文本文件:
first line - text
second line - text
third line - text
num num num num num num
....
num num num num num num
rest of text
我想一次读一列,我用它:
size = 50000;
M=zeros(size,1);
for i=3:size+2
M(i-2,1) = dlmread('filename.ext', ' ', [i 1 i 1]);
end
它有效,但需要很长时间。这是为什么?它只是阅读文字!我是用c ++编写的,使用标准函数需要几秒钟!
答案 0 :(得分:1)
您正在阅读文本文件。找到某一行的唯一可能性是解析整个文件,直到达到此行为止。这是dlmread
每次调用时内部执行的操作。
使用dlmread('filename.ext', ' ', [3 1 size+2 1]);
一次阅读全部内容。