Matrix 辛复矩阵的实部/虚部
这是我的问题 我使用了辛矩阵和复矩阵p(p的所有元素都是复数)。 我想提取第一行的实部/虚部 因此,我使用以下顺序:Matrix 辛复矩阵的实部/虚部,matrix,complex-numbers,sympy,Matrix,Complex Numbers,Sympy,这是我的问题 我使用了辛矩阵和复矩阵p(p的所有元素都是复数)。 我想提取第一行的实部/虚部 因此,我使用以下顺序: import sympy as sp P = sp.Matrix([ [a+sp.I*b,c-sp.I*d], [c-sp.I*d,a+sp.I*b] ]) Row = P.row(0) Row.as_mutable() Re_row = sp.re(Row) Im_row = sp.im(Row) 但代码返回以下错误: “AttributeError:ImmutableMa
import sympy as sp
P = sp.Matrix([ [a+sp.I*b,c-sp.I*d], [c-sp.I*d,a+sp.I*b] ])
Row = P.row(0)
Row.as_mutable()
Re_row = sp.re(Row)
Im_row = sp.im(Row)
但代码返回以下错误:
“AttributeError:ImmutableMatrix没有作为_系数的属性。”
错误发生在sp.re(行)和sp.im(行)操作过程中。。。
Sympy告诉我行是一个不可变矩阵,但我指定我想要一个可变矩阵
所以我在死胡同里,我没有解决办法
有人能帮我吗?
多谢各位 如果直接将矩阵传递给大多数辛函数,它们将不起作用。您需要使用矩阵的方法,或者如果没有这种方法(这里就是这种情况),请使用
applyfunc
In [34]: Row.applyfunc(re)
Out[34]: [re(a) - im(b) re(c) + im(d)]
In [35]: Row.applyfunc(im)
Out[35]: [re(b) + im(a) -re(d) + im(c)]
(我在这里将a
、b
、c
和d
定义为普通符号,如果将它们设置为实数,答案会简单得多)