Kon*_*nos 8 python vector sympy
我在python中编写了一个脚本,它使用sympy来计算几个向量/矩阵公式.但是,当我尝试将这些函数转换为我可以使用sympy.lambdify进行评估的函数时,我得到了一个
SyntaxError:扫描字符串文字时的EOL
这里有一些代码有相同的错误,所以你可以看到我的意思.
import sympy
x = sympy.MatrixSymbol('x',3,1)
f = sympy.lambdify(x, x.T*x)
Run Code Online (Sandbox Code Playgroud)
因此,语法错误与表达式"x'.dot(x)"和".T"到'的转换有关.
我如何解决这个问题,从上面的lambdify中正确定义f?
它已在 sympy 版本 >= 1.1 中解决
编辑:
例子
当你定义这个时
x = sympy.MatrixSymbol('x',3,1)
,你正在创建一个矩阵,
您可以使用检查其索引和形状
print(sympy.Matrix(x))
现在您想要将 x 的转置乘以 x,您必须给出x一个与之前定义的形状相同的矩阵
在这里试试这个:
from sympy import MatrixSymbol, lambdify, Matrix
x = MatrixSymbol('x', 3, 1)
f = lambdify(x, x.T*x)
a = Matrix([[1], [2], [3]])
print(f(a))
Run Code Online (Sandbox Code Playgroud)
您可以查看此链接以更好地了解lambdaify: http://docs.sympy.org/latest/modules/utilities/lambdify.html