同时循环两个变量

时间:2015-11-11 02:33:19

标签: matlab for-loop

我有这个等式

W = W1+W2

我想写一个for循环,其中包含W1W2的起始值, 即。

W1 = 2 W2 = 1.5

每次加10%,每次10次,每次解决W = W1 + W2

例如,第一个是

W = 2+1.5 = 3.5

然后

W = 2.2 + 1.65 = 3.85

等等。

基本上是一个for循环,您可以在其中更改两个变量,但它们会一起更改。

3 个答案:

答案 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