Function generation error using python code in matlab

35 views (last 30 days)
%% download sympy module
pe = pyenv;
exe = string(pe.Executable);
cmd1 = '"' + exe + '"' + " -m pip install --upgrade pip";
cmd2 = '"' + exe + '"' + " -m pip install sympy";
system(cmd1);
system(cmd2);
%% function generation
sp = py.importlib.import_module('sympy');
x = sp.symbols('x');
f = sp.Function('f');
y = f(x); % <-- error here
eq = sp.Eq(sp.diff(y,x,2)+3*y-1,0);
Hi, all.
I'm trying to make function with python code in matlab m-file.
But, when it carry on 'y=f(x)' code, make a error
'Python object is neither string nor unicode. Cannot return chars.'
and there is no object 'y' in workspace.
What should I edit to run this code properly.
Thanks.

Accepted Answer

Leepakshi
Leepakshi on 17 Nov 2025 at 11:50
Hey,
When you call f(x), the result is a SymPy object, not a string or number. MATLAB cannot convert this to a native MATLAB type, so you must work with it as a Python object in MATLAB. Try converting it into MATLAB compatible datatype.
Thanks

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!