0

所以我应该创建向量 Y = 2 4 8 16 32 64 128 256

它基本上是 2^(x+1),如 2^1、2^2、2^3 等等。

所以我的尝试是 Y = [2:2^1:256],基本上我希望它从 2 开始,在 256 结束并以 2^1 的增量增加,但我不断得到 2、4、6、8、10 ...作为我的答案,而不是 2、4、8、16、32... 因为 matlab 认为我希望它以 2 而不是 2^(x+1) 的增量增加。

我尝试了许多组合,例如 [2:^1:256] 但这些也不起作用。

谁能给我一些关于这个问题的提示?

谢谢!

4

2 回答 2

7

原因[2:2^1:256]在于2^1just 变成2,所以就像你写的那样[2:2:256]

相反,您可以将其[2^1 2^2 2^3 ...]视为提升2权力[1 2 3 ...]。执行此操作的运算符是.^,按分量取幂:2 .^ (1:8)

于 2013-09-17T02:58:06.850 回答
4

您可能对函数感兴趣logspace。它可用于生成任何对数级数。它基于 log10 - 所以为了得到你想要的序列,你可以这样做:

Y = logspace(log10(2), log10(256), 8);

这应该会生成您正在寻找的向量 ( [2 4 8 ... 256])。八个元素,对数间隔,从 2 开始,到 256 结束。这是一个非常通用的解决方案。

于 2013-09-17T03:28:31.130 回答