Python, Sympy:如何将 sympy 表达式输出为 Python 函数?
Python, Sympy: How to output sympy expression as Python function?
Sympy的lambdify函数只能将我们的表达式转成lambda函数
x, y = symbols('x y')
expr = x + 2*y
f = lambdify(x, expr)
但是如何将表达式输出为 Python 函数呢?类似于:
def expr(x, y):
return x + 2*y
或者是否可以使用 Sympy 为我们的函数表达式自动生成 python 脚本文件 expr.py
?
简而言之,需要实现matlabFunction
在Matlab中所做的事情(Convert symbolic to matlab function)
不太确定这是否是您要找的东西,但 sympy 有 octave (matlab) code printing option。
这里有一个简单的例子来说明它的作用:
import sympy as sym
x,y = sym.symbols('x y')
expr = x + 2*y
expr2 = sym.sin(x) + sym.I*sym.exp(y)
sym.pprint(expr) #prints nice human readable output
sym.pprint(sym.printing.octave.octave_code(expr)) #prints octave (matlab) compatible output
sym.pprint(expr2)
sym.pprint(sym.printing.octave.octave_code(expr2))
from sympy import *
x, y = symbols('x y')
expr = x + 2*y
func = lambdify([x,y], expr)
f=func(1,2)
输出:5
不确定这是否是您想要的。
Sympy的lambdify函数只能将我们的表达式转成lambda函数
x, y = symbols('x y')
expr = x + 2*y
f = lambdify(x, expr)
但是如何将表达式输出为 Python 函数呢?类似于:
def expr(x, y):
return x + 2*y
或者是否可以使用 Sympy 为我们的函数表达式自动生成 python 脚本文件 expr.py
?
简而言之,需要实现matlabFunction
在Matlab中所做的事情(Convert symbolic to matlab function)
不太确定这是否是您要找的东西,但 sympy 有 octave (matlab) code printing option。
这里有一个简单的例子来说明它的作用:
import sympy as sym
x,y = sym.symbols('x y')
expr = x + 2*y
expr2 = sym.sin(x) + sym.I*sym.exp(y)
sym.pprint(expr) #prints nice human readable output
sym.pprint(sym.printing.octave.octave_code(expr)) #prints octave (matlab) compatible output
sym.pprint(expr2)
sym.pprint(sym.printing.octave.octave_code(expr2))
from sympy import *
x, y = symbols('x y')
expr = x + 2*y
func = lambdify([x,y], expr)
f=func(1,2)
输出:5
不确定这是否是您想要的。