def GetE(x1, x2, k, x, z, N):
firstHeight = math.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))j)
我的函数在定义firstHeight 的行上出现语法错误。我相信这与无法用变量定义复数有关,正如我所尝试的那样:
test = 2 + (k)j
并且还收到语法错误。有谁知道如何解决这个问题吗?
最佳答案
math
不支持复数,因为您有 cmath
:
import math, cmath
cmath.exp(((k/(2*math.pi*z)) * ((x-x1) ** 2))*1j)
# (0.998966288513345+0.045457171204028084j)
或者您可以使用NumPy
:
np.exp(((k/(2*np.pi*z)) * ((x-x1) ** 2))*1j)
#(0.998966288513345+0.045457171204028084j)
正如 @GreenCloakGuy 指出的那样,您不能使用 j
将非文字转换为复数。您可以使用 complex()
或 1j
关于python - 尝试定义复指数时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60151920/