IndexError:索引XX超出了尺寸为XX的轴0的范围

时间:2018-11-26 06:11:39

标签: python

for t in range(0,N):
    index = 1 + np.mod(2 ** (J - 1) * t, N)
    ind.append(index)
Gup = np.conjugate(G[ind])

上面的代码给了我以下错误:

IndexError: index 302537 is out of bounds for axis 0 with size 302537

其中N = 302537 G是长度为302537的数组 ind是长度为302537的列表 J = 6

G = array([1. -2.98372438e-16j, 1. -8.33750848e-05j, 0.99999999-1.66750169e-04j, ..., 0.99999997+2.50125252e-04j, 0.99999999+1.66750169e-04j, 1. +8.33750848e-05j]) 

ind = [1,65,129,193,257,321,385,449,513,577,641,705,769,833,897,....]

两者的长度均为302537,ind的最后一个元素为302474

该错误发生在我尝试计算共轭的最后一行。 我曾尝试将循环运行到N-1,但这也会给出相同的错误。有人可以帮我找出错误。

1 个答案:

答案 0 :(得分:0)

您的问题在index = 1 + np.mod(2 ** (J - 1) * t, N)行中。模的最大值为N-1,但随后将其加一个,因此index的最大值为NN元素数组中没有元素编号N。最大允许索引为N-1。您不应该在模数上加1。