这里是我的代码的一部分:
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()
。