MATLAB中的序列

时间:2014-10-28 03:35:10

标签: matlab sequence

编写单个MATLAB表达式以生成包含以下序列的前100个术语的向量: 2,-4,8,-16,32,... < / p>

我的尝试:

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

问题是n的所有值都不会显示在单个(1 x 100)向量中。没有显示交替的正面和负面术语。怎么做 ?

2 个答案:

答案 0 :(得分:4)

你有一个几何系列,其中r = -2。

要生成2,-4,8,-16,32,请输入:

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

 2, -4, 8, -16, 32

您可以相应地更改5的值。

答案 1 :(得分:2)

虽然有更好的方法,如@lakesh的答案所述。我将指出代码中的错误。

  1. 通过输入n = n * 2,它如何成为矢量?
  2. 通过n=n * 2,您将生成-2,-4,-8,-16,......
  3. 因此,正确的代码应为:

    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)=[];