首页 > 解决方案 > Sympy:获取矩阵幂的列

问题描述

这似乎是一个简单的问题。我的代码读取

import sympy as sp
D1 = sp.symbols('D1')
D2 = sp.symbols('D2')
m1 = sp.diag(*[2 * D1, 2 * D1, 2 * D2, 2 * D2])
b = sp.sqrt(m1)

m1.col(0)
b.col(0)

即我想得到一个矩阵的平方根列。但是,该MatPow对象b似乎没有.col普通矩阵所具有的属性m1

输出:

AttributeError                            Traceback (most recent call last)
<ipython-input-55-855c6e53a412> in <module>()
----> 1 b.col(0)

AttributeError: 'MatPow' object has no attribute 'col'

我究竟做错了什么?

标签: pythonmatrixsympy

解决方案


您需要将MatPow对象转换为MutableDenseMatrixwithas_mutable方法:

b_as_m = b.as_mutable()
print(b_as_m.col(0))

输出:

Matrix([[sqrt(2)*sqrt(D1)], [0], [0], [0]])

推荐阅读