如何通过matlab中的for循环生成未知大小的矩阵

时间:2013-09-14 17:57:39

标签: matlab matrix multiplication

代码

conf=ones(103,1);  
f=conf;  
for k=1:103  
    f(k:k+1)=1i;  
    conf=f.*conf;  
    p(k,:)=conf;  
end

现在我实际上想要在矩阵p中记录每次迭代的结果。这样我以后就可以在我的程序中使用这个产品结果了 最终p矩阵可能就像

[i i 1 1 1 1 1...
i -1 i 1 1 1 1.....
i -i -1 i 1 1 1.....
so on]

1 个答案:

答案 0 :(得分:0)

看起来你已经完成了所有的硬件修复。我认为你想要的是:

conf=ones(103,1);  
f=conf;  
for k=1:102         % <--- reduced this because otherwise f(k:k+1) attempts to 
                    %      index beyond the size of f
    f(k:k+1)=1i;  
    conf=f.*conf;  
    p(k,:)=conf;  
end
p(103,:)=1i;

我会检查一个较小阵列的结果。例如,如果我运行以上较小版本(作为测试)

conf=ones(5,1);  
f=conf;  
for k=1:4 
    f(k:k+1)=1i;  
    conf=f.*conf;  
    p(k,:)=conf;  
end
p(5,:)=1i;

我得到了

>> real(p)

ans =

     0     0     1     1     1
    -1    -1     0     1     1
     0     0    -1     0     1
     1     1     0    -1     0
     0     0     0     0     0

>> imag(p)

ans =

     1     1     0     0     0
     0     0     1     0     0
    -1    -1     0     1     0
     0     0    -1     0     1
     1     1     1     1     1