Matlab:dlmread太慢了

时间:2014-08-30 02:45:02

标签: matlab file

我有一个这样的文本文件:

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 ++编写的,使用标准函数需要几秒钟!

1 个答案:

答案 0 :(得分:1)

您正在阅读文本文件。找到某一行的唯一可能性是解析整个文件,直到达到此行为止。这是dlmread每次调用时内部执行的操作。

使用dlmread('filename.ext', ' ', [3 1 size+2 1]);一次阅读全部内容。