Error - MATLAB expression <output of myfunc> is not numeric
Show older comments
I am trying to pass a value from the python code to the Matlab function in simulink and I am getting the following error:
Error - MATLAB expression <output of myfunc> is not numeric.
Matlab function -
function y = fcn
y = 0;
coder.extrinsic('py.throttle.test')
y = py.throttle.test();
end
Python code(throttle.py)
def test():
throttle = 5
return throttle
any idea how this could be solved?
7 Comments
Walter Roberson
on 15 Feb 2021
What is showing up for class(y) after the execution of the py.throttle.test() call ?
I am not clear on which point is giving the error?
Try
y = uint64(0);
Mario Malic
on 15 Feb 2021
If you call from the Command Window
y = fcn
Walter Roberson
on 15 Feb 2021
No, from the command window, y comes out as uint64 .
ARUN
on 15 Feb 2021
Walter Roberson
on 15 Feb 2021
Edited: Walter Roberson
on 15 Feb 2021
Which MATLAB release are you using, and which operating system?
ARUN
on 15 Feb 2021
filename = 'throttle.py';
[fid, msg] = fopen(filename, 'wt');
if fid < 0
error('Failed to open file "%s" because "%s"', filename, msg);
end
fprintf(fid, 'def test():\n');
fprintf(fid, ' throttle = 5\n');
fprintf(fid, ' return throttle\n');
fclose(fid)
y = py.throttle.test();
class(y)
disp(y)
It works when I test on Mac or in MATLAB Online (which is Linux)
Answers (0)
Categories
Find more on Call Python from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!