Python, Sympy: Как вывести выражение sympy как функцию Python? - PullRequest
1 голос
/ 19 мая 2019

Функция lambdify в Sympy может конвертировать только наше выражение в функцию лямбда.

x, y = symbols('x y')
expr = x + 2*y
f = lambdify(x, expr)

Но как вывести выражение как функцию Python? что-то вроде:

def expr(x, y):
    return x + 2*y

Или возможно ли автоматически сгенерировать файл скрипта Python expr.py для выражения нашей функции с помощью Sympy?

Короче говоря, нужно добиться того, что matlabFunction делает в Matlab ( Преобразует символьную в функцию Matlab )

1 Ответ

1 голос
/ 20 мая 2019

Не совсем уверен, что это именно то, что вы ищете, но у 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))
...