我有一个像
这样的功能 for i = 1:n
[A,B] = generatecomp(i, a, b);
end
我希望保存这些n和1矩阵的A和B值。 我尝试使用以下代码解决问题:
A=[];
B=[];
for i=1:n
[A1,B1] = generatecomp(i, a, b);
A=[A;A1]
B=[B,B1]
end
save('ABval.mat','A','B')
问题是矩阵的长度随着' n'而变化。值。如何在同一.mat文件中保存所有A和B值?
答案 0 :(得分:2)
如果您希望文件中保存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')