我是一个从 Matlab 到 python 的新转换者,我正在努力生成复杂的数组。
在matlab中,我有以下代码:
xyAxis = linspace(-127,127,255);
[x,y] = meshgrid(xyAxis, xyAxis);
fz = -(x.^2 + y.^2);
ifz = sqrt(fz);
Run Code Online (Sandbox Code Playgroud)
我试图在 python 3 中复制:
import numpy as np
xyAxis = np.intp( np.linspace(-127, 127, 255) )
x, y = np.meshgrid(xyAxis,xyAxis)
fz = - (x**2 + y**2)
ifz = np.sqrt(fz)
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
RuntimeWarning: invalid value encountered in sqrt
Run Code Online (Sandbox Code Playgroud)
我已经做了一些谷歌搜索,但我不确定在这种情况下如何模仿 matlab 的行为?有什么建议?
一种方法是强制转换fz为 complex dtype:
ifz = np.sqrt(fz.astype(np.complex))
Run Code Online (Sandbox Code Playgroud)