在线
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
在代码下面运行时,
'''
Online Python Compiler.
Code, Compile, Run and Debug python program online.
Write your code in this editor and press "Run" button to execute it.
'''
import numpy as np
f=np.zeros((2,2,2))
g=np.zeros((2,2,2))
f=np.add(f,1)
g=np.add(g,2)
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
f[i][j][k] = (i+1)*(j+1)+(k+1)
g[i][j][k] = (i+2)*(j+3)+(k+4)
ftf = np.fft.fftn(f)
ftg = np.fft.fftn(g)
print(f)
print(g)
print(ftf)
print(ftg)
print("------")
e =np.zeros((2,2,2))
for i in range(0,2):
for j in range(0,2):
for k in range(0,2):
if np.isnan(ftg[i][j][k]):
e[i][j][k]=0
else:
e[i][j][k]=np.divide(ftf[i][j][k],ftg[i][j][k])
print(e)
print("------")
h= np.fft.ifftn(e)
print(h)
返回错误:
/home/main.py:36:ComplexWarning:将复数值转换为实际丢弃虚部 E [i] [j] [k]的= np.divide(FTF [i] [j] [k]的,FTG [i] [j] [k]的)
我想我必须创建复杂的e。如何创建一个以零为单位的复杂矩阵?
将dtype
中的np.zeros
参数设置为complex
:
np.zeros((10,10), dtype=complex)
array([[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],
[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],
[0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j,
0.+0.j, 0.+0.j],...