此计算旨在获取值(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
请帮助我并修改其他任何错误。非常感谢。
答案 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