我需要从一组三个方程中获得三个复数,这是一组S参数的纠错过程的一部分。
condition2='yy'
这给了我错误
import numpy as np
G_A1 = -1 + 0j
G_A2 = 0 + 0j
G_A3 = 1 + 0j
G_M1 = -0.5323 - 0.0163j
G_M2 = -11.1951 - 37.7373j
G_M3 = 0.5528 + 0.1621j
a = np.array([[G_A1,G_A2,G_A3], [1,1,1], [(-G_A1*G_M1),(-G_A2*G_M2),(-G_A3,G_M3)]])
b = np.array([G_M1,G_M2,G_M3])
x = np.linalg.solve(a, b)
print(x)
我想我不妨尝试将复数值转换为float,但后来我得到了这个错误。
a = np.array([[G_A1,G_A2,G_A3], [1,1,1], [(-G_A1*G_M1),(-G_A2*G_M2),(-G_A3,G_M3)]])
TypeError: a float is required
如果复杂的值无法转换为float,我应该在这里使用哪种替代方法?
答案 0 :(得分:2)
你在最后一行的最后一个条目中有一个拼写错误,这使得它成为一个元组
(-G_A3,G_M3)
并导致TypeError
作为元素。如果你纠正了问题就消失了。在这种情况下,你也不需要在表达式周围添加括号。