【发布时间】:2018-07-17 17:53:26
【问题描述】:
我在替换 sympy 中的 MatrixSymbols 时遇到问题。这是一个基本的代码示例:
>>> import sympy as sy
>>> x, y = sy.symbols('x y')
>>> v = sy.MatrixSymbol('v', 2, 1)
>>> w = sy.MatrixSymbol('w', 2, 1)
>>> 2 + 3
5
>>> (x + y).subs({x: 2, y: 3})
5
>>> sy.Matrix([2,2]) + sy.Matrix([3,3])
Matrix([
[5],
[5]])
>>> (v + w).subs({v: sy.Matrix([2,2]), w: sy.Matrix([3,3])})
Matrix([
[2],
[2]]) + Matrix([
[3],
[3]])
>>> (v + w).subs({v: sy.Matrix([2,2]), w: sy.Matrix([3,3])}).evalf()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-9-25398137decd> in <module>()
----> 1 (v+w).subs({v: sy.Matrix([2,2]), w: sy.Matrix([3,3])}).evalf()
AttributeError: 'MatAdd' object has no attribute 'evalf'
我希望 MatrixSymbols v 和 w 的行为类似于标量符号 x 和 y,但事实并非如此。
有没有一种方法可以通过插入 v 和 w 的向量来评估像 v + w 这样的表达式?
【问题讨论】:
标签: matrix sympy substitution