我有一个循环如下
for chnum=1:300
PI=....
area=....
save ('Result.mat' ,'chnum' ,'PI' ,'area',' -append') %-append
%% I like to have sth like below
% 1, 1.2,3.7
% 2, 1,8, 7.8
% .....
end
但它没有保存。你知道为什么吗?
最佳
答案 0 :(得分:2)
matlab help page for save
表示Activity3
选项会将新变量附加到已保存的文件中。它不会将新行附加到已保存的矩阵中。
要实现您的目标,您必须将数据存储在矩阵中,并通过一次调用-append
来保存整个矩阵。
save()
为了更好的内存管理,我添加了数组的预分配。
答案 1 :(得分:2)
嗯,即使它不是问题的一部分,我也不认为你正在使用一种好的方法来保存你的计算。在磁盘上执行的读/写操作(在这种情况下保存文件上的数据)在时间上非常昂贵。这就是我建议你按照以下步骤进行的原因:
res = NaN(300,2)
for chnum = 1:300
PI = ...
area = ...
res(chnum,:) = [PI area]; % saving chnum looks a bit like an overkill since you can retrieve it just using size(res,1) when you need it...
end
save('Result.mat','res');
基本上,不是处理行并将其保存到文件中,而是处理另一行并将其保存到文件中等...您只需将整个数据保存到矩阵中,然后将最终结果保存到文件中