我有这个等式
W = W1+W2
我想写一个for
循环,其中包含W1
和W2
的起始值,
即。
W1 = 2 W2 = 1.5
每次加10%,每次10次,每次解决W = W1 + W2
。
例如,第一个是
W = 2+1.5 = 3.5
然后
W = 2.2 + 1.65 = 3.85
等等。
基本上是一个for
循环,您可以在其中更改两个变量,但它们会一起更改。
答案 0 :(得分:1)
我完全同意@David's comment,矢量化就是这里的方式:
W1 = 2;W2=1.5;
W=W1+W2;
W*(1.1.^(0:10))
ans =
Columns 1 through 9
3.5000 3.8500 4.2350 4.6585 5.1244 5.6368 6.2005 6.8205 7.5026
Columns 10 through 11
8.2528 9.0781
答案 1 :(得分:0)
好的matlab语法经常包括找到不使用循环的方法。大卫的答案就是一个例子。如果你特别需要一个for循环,这个代码会以过度绘制和笨重的方式做同样的事情,不使用matlab的功能甚至是好的数学,但我认为这就是你要求的。
W1 = zeros(1,10);
W1 = 2;
W2 = 1.5;
for i = 1:10
W(i) = W1 + W2;
W(i)
W1 = W1 * 1.1;
W2 = W2 * 1.1;
end
但是除非你有充分的理由不使用大卫的答案。
答案 2 :(得分:0)
clear
clc
W1 = 2;
W2 = 1.5;
for i = 1:10
W = W1 + W2
W1 = W1 + W1*0.1;
W2 = W2 + W2*0.1;
end