我正在研究一个问题,我有一个100个元素的数组A
。
所有这100个元素都随着时间而变化。
所以在我的工作区中,我只在整个时间周期运行后得到所有这些元素的最终值。
我正在尝试将值随时间保存在单独的文件(.txt或.mat)中,以便我可以访问该文件以检查变量如何随时间变化。
我正在尝试以下命令:
save('file.mat','A','-append');
但是这个命令会覆盖我文件中的现有值。
请建议我一种保存这些值而不覆盖它们的方法,并指导我如何在MATLAB中访问它们。
答案 0 :(得分:2)
您还可以将输出文件名更改为每次迭代都是唯一的:
for iter=1:n
A = rand(10);
save(sprintf('file%d.mat',iter), 'A');
end
这样每次迭代都会创建一个文件。
答案 1 :(得分:0)
保存到文件(即使使用-append
)标志不起作用的原因是因为变量A
已经存在于文件中并且每次都会在循环中被覆盖。您需要在每次循环时创建一个新文件或新变量名称,以便不会发生这种情况。
将结果保存在文件中可能不是存储A
的时变值的最佳方法。最好使用单元格数组存储A
的所有中间值。
A_over_time = cell();
for k = 1:n
%// Get A somehow
A_over_time{k} = A;
end
根据 A
的内容,您还可以将A
的值存储在数字数组或矩阵中。
%// Using an array
A_over_time = zeros(N, 1);
for k = 1:N
A_over_time(k) = A;
end
%// Using a matrix
A_over_time = zeros(N, numel(A));
for k = 1:N
A_over_time(k,:) = A;
end