无法在 Python 中将复杂转换为浮点数



这里是我的代码的一部分:

import math
import numpy as np
M_Matrix = []
for i in range(0, layer + 1):
# creat phase retardation tilda matrix
M = [[math.exp(-1j * phase_retardation_tilda[i]), 0],
[0, math.exp(1j * phase_retardation_tilda[i])]]
N = (1 / (2 * n_tilda[i+1] * a_mn[i])) * [[n_tilda[i+1] + n_tilda[i], n_tilda[i+1] - n_tilda[i]],
[n_tilda[i+1] - n_tilda[i], n_tilda[i+1] + n_tilda[i]]]
matrix = np.dot(M, N)
M_Matrix.append(matrix)

我收到这个错误:

M = [[math.exp(-1j * phase_retardation_tilda[i]), 0],
TypeError: can't convert complex to float

我该怎么办?

根据文档:math模块不能与复数一起使用;如果需要支持复数,请使用cmath模块中的同名函数。在您的情况下,可以使用cmath.exp()而不是math.exp()

最新更新