代码中的某些函数返回一个sympy.Matrix,但不返回用于创建矩阵的符号。我现在想用它的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))
发布于 2022-06-08 23:45:36
如果允许您修改函数的代码,则可以按您喜欢的顺序返回符号:
def func():
x, y, z = symbols("x, y, z")
return x, y, z, Matrix([[x, y], [z, 0]])
否则,可以从free_symbol
属性中提取Matrix
的符号。
from sympy import *
x, y, z = symbols("x, y, z")
M = Matrix([[x, y], [z, 0]])
list(M.free_symbols)
# out: [x, z, y]
https://stackoverflow.com/questions/72555696
复制相似问题