Python,Sympy:如何将Sympy表达式输出为Python函数?

3

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自动生成一个名为expr.py的Python脚本文件来表示我们的函数表达式呢?

简而言之,需要实现Matlab中matlabFunction的功能 (将符号转换为Matlab函数)


SymPy文档中有一个关于打印系统的部分。 - hpaulj
尝试使用print(inspect.getsource(f)) - smichr
2个回答

1

我不确定这是否是您要寻找的,但 sympy 具有 octave (matlab) 代码打印选项

以下是它的一个快速示例:

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))

0
from sympy import *

x, y = symbols('x y')
expr = x + 2*y
func = lambdify([x,y], expr)
f=func(1,2)

输出:5

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接