Matlab 保存循环数据
Matlab saving for loop data
我有一个类似
的功能
for i = 1:n
[A,B] = generatecomp(i, a, b);
end
我想保存这些 A 和 B 值,它们是 n x 1 矩阵。
我尝试使用以下代码解决问题:
A=[];
B=[];
for i=1:n
[A1,B1] = generatecomp(i, a, b);
A=[A;A1]
B=[B,B1]
end
save('ABval.mat','A','B')
bu 问题是矩阵的长度随着 'n' 值的变化而变化。如何将所有 A 和 B 值保存在同一个 .mat 文件中?
如果您想要 A
和 B
的所有中间值都保存在文件中,那么您需要将 save
调用 放在 你的 for 循环。
for k = 1:n
[A1,B1] = generatecomp(k, a, b);
A=[A,A1]
B=[B,B1]
filename = sprintf('ABval%d.mat', k);
save(filename, 'A', 'B')
end
或者,如果您希望它们都在同一个文件中,那么您可以将中间值存储在元胞数组中(这样做的额外好处是它们不必具有相同的维度),然后保存整个元胞数组到文件。
% Cell arrays to store intermediate values
A = cell(1, n);
B = cell(1, n);
for k = 1:n
[A{k}, B1{k}] = generatecomp(k, a, b);
end
save('ABvals.mat', 'A', 'B')
我有一个类似
的功能 for i = 1:n
[A,B] = generatecomp(i, a, b);
end
我想保存这些 A 和 B 值,它们是 n x 1 矩阵。 我尝试使用以下代码解决问题:
A=[];
B=[];
for i=1:n
[A1,B1] = generatecomp(i, a, b);
A=[A;A1]
B=[B,B1]
end
save('ABval.mat','A','B')
bu 问题是矩阵的长度随着 'n' 值的变化而变化。如何将所有 A 和 B 值保存在同一个 .mat 文件中?
如果您想要 A
和 B
的所有中间值都保存在文件中,那么您需要将 save
调用 放在 你的 for 循环。
for k = 1:n
[A1,B1] = generatecomp(k, a, b);
A=[A,A1]
B=[B,B1]
filename = sprintf('ABval%d.mat', k);
save(filename, 'A', 'B')
end
或者,如果您希望它们都在同一个文件中,那么您可以将中间值存储在元胞数组中(这样做的额外好处是它们不必具有相同的维度),然后保存整个元胞数组到文件。
% Cell arrays to store intermediate values
A = cell(1, n);
B = cell(1, n);
for k = 1:n
[A{k}, B1{k}] = generatecomp(k, a, b);
end
save('ABvals.mat', 'A', 'B')