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,但这也会给出相同的错误。有人可以帮我找出错误。
答案 0 :(得分:0)
您的问题在index = 1 + np.mod(2 ** (J - 1) * t, N)
行中。模的最大值为N-1
,但随后将其加一个,因此index
的最大值为N
。 N
元素数组中没有元素编号N
。最大允许索引为N-1
。您不应该在模数上加1。