MATLAB - 如何为循环计算的每次迭代创建输出

时间:2014-12-06 01:27:51

标签: matlab if-statement for-loop

此计算旨在获取值(a)并对循环的每次迭代执行两次计算之一。每个顺序循环采用新的计算值并重新计算。我想保留每个循环的输出值。下面是一个示例,使用逻辑数组来决定在5个循环中使用哪个计算:

a = 0;
b = logical([1 0 1 1 0]);

for i = 1:length(b)
    if b(i) == 1
        a = 1*2 + a*2
    else
        a = a*3
    end
end

此示例不正确,因为它只返回a的1个值而不是5.此示例的所需结果是:

a = 2 6 14 30 90

请帮助我并修改其他任何错误。非常感谢。

1 个答案:

答案 0 :(得分:1)

你可以做到

a = [0];
b = logical([1 0 1 1 0]);

for i = 1:length(b)
    if b(i) == 1
        a(end+1) = 1*2 + a(end)*2;
    else
        a(end+1) = a(end)*3;
    end
end