我正在尝试通过函数定义以下矩阵
import numpy as np
import cmath
def DFT(N):
w=cmath.exp((2j*math.pi)/N)
F=np.ones((N,N))
for i in range(1,len(F)-1):
for j in range(1,len(F)-1):
F[i,j]=w**(i*j)
return F
我继续收到错误
File "<pyshell#6>", line 6, in DFT
F[i,j]=pow(w,(i*j))
TypeError: can't convert complex to float
并尝试了以下方法
F[i,j]=pow(w,(i*j))
F[i,j]=w**(i*j)
我不确定可能导致错误的原因,并且还重新定义了w
,类似于我重新定义F[i,j]
以尝试查看这是否是原因。我想错误来自这样一个事实,即我们得到了偶数幂的实数,但据我了解,它应该只返回带有实数的数字和虚数部分的 0j。这是我的第一篇文章,我仍然是 python 的新手,所以如果我的问题提出不好,我深表歉意。
似乎问题出在我的矩阵 dtype 中,我通过定义解决了问题
F=np.zeros((N,N),complex)