Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python symphy将符号矩阵替换为符号_Python_Matrix_Sympy_Lambdify - Fatal编程技术网

Python symphy将符号矩阵替换为符号

Python symphy将符号矩阵替换为符号,python,matrix,sympy,lambdify,Python,Matrix,Sympy,Lambdify,-或- 但这两种方法都不管用。当我评估以下内容时: q_0_dot_str = '.5 * dot(q_vec, omega_vec)' q_0_dot_symp = sym.sympify(q_0_dot_str) q_0_dot_symp = q_0_dot_symp.subs([(q_vec, sym.Matrix([q1, q2, q3]), \ (omega_vec, sym.Matrix([w1, w2, w3]).T))

-或-

但这两种方法都不管用。当我评估以下内容时:

q_0_dot_str = '.5 * dot(q_vec, omega_vec)'
q_0_dot_symp = sym.sympify(q_0_dot_str)
q_0_dot_symp = q_0_dot_symp.subs([(q_vec, sym.Matrix([q1, q2, q3]), \
                               (omega_vec, sym.Matrix([w1, w2, w3]).T))])
q_0_dot_symp = q_0_dot_symp.xreplace([{q_vec: sym.Matrix([q1, q2, q3])},\
                                   {omega_vec: sym.Matrix([w1, w2, w3]).T}])
q_0_dot_fcn = lambdify((q1, q2, q3, w1, w2, w3), q_0_dot_symp, 'numpy')
我得到:

q_0_dot_fcn(1,2,3,4,5,6)

而不是将我为符号矩阵中的符号变量提供的值进行细分(然后得到实际的m=数值结果)。

在subs调用中有一个输入错误。应该是

0.5*omega_vec*q_vec
而不是

q_0_dot_symp = q_0_dot_symp.subs([(q_vec, sym.Matrix([q1, q2, q3])), \
                               (omega_vec, sym.Matrix([w1, w2, w3]).T)])
(注意括号的位置)

完成此修复后,它在SymPy 1.0中对我有效

q_0_dot_symp = q_0_dot_symp.subs([(q_vec, sym.Matrix([q1, q2, q3]), \
                               (omega_vec, sym.Matrix([w1, w2, w3]).T))])

你在潜艇呼叫中有一个输入错误。应该是

0.5*omega_vec*q_vec
而不是

q_0_dot_symp = q_0_dot_symp.subs([(q_vec, sym.Matrix([q1, q2, q3])), \
                               (omega_vec, sym.Matrix([w1, w2, w3]).T)])
(注意括号的位置)

完成此修复后,它在SymPy 1.0中对我有效

q_0_dot_symp = q_0_dot_symp.subs([(q_vec, sym.Matrix([q1, q2, q3]), \
                               (omega_vec, sym.Matrix([w1, w2, w3]).T))])

本期完成后将对您有用本期完成后将对您有用