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

不确定这是否是您想要的。