通过标量符号多重sp.eye的正确方法是什么
我试过
import sympy as sp
? = sp.symbols("?")
? * sp.eye
但看到错误
TypeError Traceback (most recent call last)
<ipython-input-25-dc4fb0b9f400> in <module>
3 ? = sp.symbols("?")
4
----> 5 ? * sp.eye
TypeError: unsupported operand type(s) for *: 'Symbol' and 'function'
sp.eye用标量符号乘法的正确方法是什么
回答
你需要告诉它单位矩阵有多大!
>>> from sympy import *
>>> x = symbols("x")
>>> x * eye(3)
Matrix([
[x, 0, 0],
[0, x, 0],
[0, 0, x]])
问题是它eye是一个 Python 函数,所以你不能直接将它相乘
>>> type(eye)
<class 'function'>
>>> type(eye(3))
<class 'sympy.matrices.dense.MutableDenseMatrix'>