编程第N个离散傅里叶变换类型错误

时间:2018-03-22 00:16:06

标签: python-3.x complex-numbers

我试图通过函数

定义以下矩阵
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的新手,所以如果我的问题没有做好,我会道歉。

1 个答案:

答案 0 :(得分:0)

看来问题出在我的矩阵dtype中,我通过定义

来解决问题
indexOf