为matlab保存循环中的不同矩阵

时间:2012-10-29 20:50:12

标签: image signal-processing matlab

我有一个迭代20次的循环并产生矩阵“A”。我想使用命令将结果生成为A_1,A_2,...,A_20。我应该怎么做?

感谢。

2 个答案:

答案 0 :(得分:2)

如果您不想使用单元格数组,可以考虑以下内容:

A = zeros(nrow,ncols,20)

将创建维度A的矩阵nrow*ncol*20。始终事先为大矩阵分配空间,不要在循环内逐个平面构建它。并将nrowncol替换为您想要的任何内容。然后

for i = 1:20
    A(:,:,i) = ... stuff ...
end

现在您有一个名为A的3D矩阵。

答案 1 :(得分:0)

有很多方法可以满足您的需求。可能更轻松的是

  save([MyOutput,int2str(i)], 'A'); %where i is your iteration index, 
                                    %thus you will have 20 different files.

  save(MyOutput, 'A','-append'); %which generates one file in which 
                                 %all your matrices are stored consequently.

但真的有百万种方法。尝试更具体地说明您的需求。


如果您只需要在工作区中使用矩阵,则可以考虑使用单元格。

N = 20;
A_t = cell(N,1);

%in cycle
for ...
A_t(i) = {A};


Now your `A_t{i}` (note different parenthesis) is a cell containing your `A_i`.