2014-10-28 49 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)=[];