0

我有一个使用以下代码导入在 txt 文件中收集的数据的函数:

FILE = fopen(textDataFileName);

FIC = textscan(FILE, '%s');

FICu = FIC{1,1}(:,:);

n = numel(FICu); 

for i = 1:n
    FICun = str2double(FICu{i,1});
    FICa(i,1) = FICun;  
end

导入数据后,我的函数会提取所有必要的数据,然后我有其他函数可以为我进行数据分析。不过,我的问题是,整个函数被上面的 for 循环减慢了。最初 for 循环不是问题,因为数据集相对较小;然而,新的数据每天都被附加到文本文件中,因此 for 循环必须处理越来越大的数据集(在导入之前无法预测其大小)。有没有人有任何简单的方法来矢量化我的 for 循环并完成同样的事情?

快速说明一下,更改格式不会导致预期的行为。事实上,将格式更改为 %f(浮点数)或 %d(十进制数)会导致函数跳过文件中的大部分数据。

另一个更新:

我的代码现在如下:

FILE = fopen(textDataFileName);
FIC = textscan(FILE, '%s');
FICu = FIC{1,1}(:,:);

n = numel(FICu);
FICa = zeros(n,1); 
FICa = str2double(FICu(:,1)); 

这将完成时间缩短了 2 秒。有什么建议么?(另外,请注意更改文件格式的问题,它没有按预期工作。

4

0 回答 0