我有一个使用以下代码导入在 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 秒。有什么建议么?(另外,请注意更改文件格式的问题,它没有按预期工作。