如果我定义下面的等式
import sympy as sp
x00, x01, x02 = sp.symbols('x_{00} x_{01} x_{02}')
x10, x11, x12 = sp.symbols('x_{10} x_{11} x_{12}')
x20, x21, x22 = sp.symbols('x_{20} x_{21} x_{22}')
px0, px1, px2 = sp.symbols('p_{x0} p_{x1} p_{x2}')
py0, py1, py2 = sp.symbols('p_{y0} p_{y1} p_{y2}')
Z = sp.Matrix([ [x00, x01, x02],
[x10, x11, x12],
[x20, x21, x22]])
px = sp.Matrix([px0, px1, px2])
py = sp.Matrix([py0, py1, py2])
expr = (py.T * Z * px)[0, 0]
print(expr.coeff(x00))
print(expr.coeff(px0))
我得到了输出
0
p_{y0}*x_{00} + p_{y1}*x_{10} + p_{y2}*x_{20}
为什么sympy
返回px0
的正确输出,而不是x00
的正确输出?