2014-10-28 19 views
1

寫入單個MATLAB表達生成包含第一100個術語如下序列的一個矢量:2,-4,8,-16,32,...序列在MATLAB

我嘗試:

n = -1 
for i = 1:100 
    n = n * 2 
    disp(n) 
end 

問題是n的所有值不顯示在單個(1 x 100)向量中。顯示交替的正和負項。怎麼做 ?

回答

4

你有一個幾何系列,r = -2。

爲了產生2,-4,8,-16,32,輸入:

>>-(-2).^[1:5] 

2, -4, 8, -16, 32 

可以相應地改變爲5的值。

2

雖然有更好的方法,正如@lakesh的回答中所述。我會指出你的代碼中的錯誤。

  1. 通過輸入n = n * 2,它如何成爲一個向量?
  2. 這樣做n=n * 2,你會產生-2,-4,-8,-16,...

因此,正確的代碼應該是:

n = -1 
for i = 2:101 % 1 extra term since first term has to be discarded later 
    n(i) = -n(i-1) * 2; 
    disp(n) 
end 

你可以丟棄n的第一個元素,以獲得所需的確切系列。

n(end)=[];