我遇到了以下问题:在我的代码中,我想在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
答案 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