matlab:在for循环中创建其他变量

时间:2015-07-05 13:54:55

标签: matlab variables for-loop matrix

我遇到了以下问题:在我的代码中,我想在for循环中使用矩阵-...-矩阵向量。在每个循环中,我想得到一个额外的矩阵来乘以,例如, i = 1:P1 * z和i = 2:P1 * P2 * z等。这是我的代码到目前为止。显然它只是计算:i = 1:P1 * z,i = 2:P2 * z等......

for ii = 1:10
    % Projection on last_z
    projected_last_z = projection(:,:,ii) * last_z;
end

2 个答案:

答案 0 :(得分:1)

通常认为在循环中根据需要创建新变量是不好的做法。最好以cell array左右收集所有结果:

n = 10;
results = cell(1, n);  % preallocate some space
for i = 1:n
    results{i} = some_calculation(i);
end;

然后,您可以使用results{k}检索第k次迭代的结果。

答案 1 :(得分:1)

如果要保留结果

,必须始终在同一个变量中计算值
n = 10;
projected_last_z = 1;
for ii = 1:n
    projected_last_z = projected_last_z * projection(:,:,ii);
end
projected_last_z = projected_last_z * last_z;

循环

  

循环1:projected_last_z = P1

     

循环2:projected_last_z = P1 * P2

     

...

     

循环10:projected_last_z = P1 * P2 * ... * P10

然后将最终结果乘以last_z