在Sympy矩阵中替换不带符号的变量



代码中的某个函数返回一个症状。矩阵,但不是用来创建矩阵的符号。我现在想用它的subs()方法替换它的一些值,但是我没有符号。除了再次创建具有相同标签的符号并使用这些符号之外,还有其他方法吗?

重建该行为的一些代码将如下所示:

import sympy as sp
x = sp.Symbol('x', real=True)
m = sp.Matrix([[0, x], [0, 0]])
x = 'something_else'
print(m.subs(x, 10))

如果允许修改函数的代码,则可以按自己喜欢的顺序返回符号:

def func():
x, y, z = symbols("x, y, z")
return x, y, z, Matrix([[x, y], [z, 0]])

否则,您可以从Matrixfree_symbol属性中提取符号:

from sympy import *
x, y, z = symbols("x, y, z")
M = Matrix([[x, y], [z, 0]])
list(M.free_symbols)
# out: [x, z, y]

最新更新