Python support in Matlab Function Block

I would like to call a python function from a Matlab Function Block within Simulink. When I try this, I get an "Undefined function or variable 'py.[funcion name]'. This occurs for all python functions, even native ones like 'int'. I can call pyversion from the Matlab Function block and it returns the correct python installation information. These python functions work as exected when I call them from the Matlab Command Window or from a script invoked from the command window, just not in my Matlab Function Block. Is there something special I need to do in order to get Simulink to recognize 'py.*'? I am using Matlab 2018b.
-Thanks for your help.

Antworten (1)

Shivam Sardana
Shivam Sardana am 30 Mai 2019

0 Stimmen

There is a similar question which may be of relevance to you: https://www.mathworks.com/matlabcentral/answers/359575-how-to-run-a-python-code-on-simulink

1 Kommentar

Andrew Barth
Andrew Barth am 31 Mai 2019
I have found that I can call most python functions from within the Matlab Function block if I add a coder.extrinsic('py.myfunc'); line for each function I wish to call. However, this still does not work for all functions. I'm not exactly sure why some are different.
I have implemented a workaround where I perform the majority of python function calls in a m-file function and then within the Simulink Matlab Function block I add the line: coder.extrinsic('mfile_function');. This treats the entire function as extrinsic. This works, but I lose the ability to run the debugger on that function and I believe it may make things more difficult when I try to autocode my model and intetegrate it into other existing code. I have not gotten to that step in the process yet.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

am 22 Mai 2019

Kommentiert:

am 31 Mai 2019

Community Treasure Hunt

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

Start Hunting!

Translated by