编写单个MATLAB表达式以生成包含以下序列的前100个术语的向量: 2,-4,8,-16,32,... < / p>
我的尝试:
n = -1
for i = 1:100
n = n * 2
disp(n)
end
问题是n的所有值都不会显示在单个(1 x 100)向量中。没有显示交替的正面和负面术语。怎么做 ?
答案 0 :(得分:4)
你有一个几何系列,其中r = -2。
要生成2,-4,8,-16,32,请输入:
>>-(-2).^[1:5]
2, -4, 8, -16, 32
您可以相应地更改5的值。
答案 1 :(得分:2)
虽然有更好的方法,如@lakesh的答案所述。我将指出代码中的错误。
n = n * 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)=[];