如何在 numpy 矩阵中使用这个复数?

How can I use this complex number in numpy matrix?

这是我正在处理的 Python 代码:

def inver_hopf(x,y,z):
    return (1/np.sqrt(x**2+y**2+(1+z)**2))*np.matrix([[1+z],[x+y.j]],dtype=complex)

问题发生在[x+y.j],其中j表示复数单位。它 returns 我的错误消息 AttributeError: 'int' object has no attribute 'j'。如果我删除点,那么它 returns NameError: name 'yj' is not defined。我该如何纠正?谢谢!

与其尝试使用 xy 变量直接写入复数,不如尝试将其传递给 complex class。示例:

def inver_hopf(x, y):
    return np.matrix([complex(x, y)], dtype=complex)

这取决于您要使用代码存档的内容。

在一般写作中 y.j(object.attribute) 您想要访问所述对象的属性。在您的情况下,对象 y 的属性 j(在您的示例中为 int)。

如果我对你的理解正确,你想要一个矩阵,其中第一个条目是纯实数,值为 1+z,第二个条目是纯虚数 x+y。为此,您需要将纯实数总和 x+y 乘以 j.

这将导致:

def inver_hopf(x,y,z):
    return (1/np.sqrt(x**2+y**2+(1+z)**2))*np.matrix([[1+z],[(x+y)*1j]],dtype=complex)

j 单独是一个变量,你可以输入 1j

得到复数