How to run a python code on simulink?
465 views (last 30 days)
Nitharshini Sivakumar on 4 Oct 2017
I am trying do some image processing and have codes written in python. I am trying to make it run on matlab/simulink. Is there a simulink block that can run python codes? Something like I can give an input to the block, it will run the python code and give the output.
Nick Choi on 6 Oct 2017
You could try using a MATLAB function block that contains MATLAB code to call the Python code.
This documentation link provides an example of how to integrate a MATLAB function block into a Simulink model,
and this documentation link contains useful information on how to use Python code with MATLAB: https://www.mathworks.com/help/matlab/getting-started-with-python.html
One thing to note is that not all MATLAB functionalities will be supported for code generation so you may need to use 'coder.extrinsic' in the MATLAB function block. Additional information on 'coder.extrinsic' can be found here:
More Answers (2)
Lode De Herdt on 24 Mar 2020
Yes, this is possible to do. A very simple example of Python code running in Simulink using the MATLAB Function block:
The MATLAB Function block refers to this code:
function out = RunPython(in1, in2)
out = 0; % Has to be preassigned, otherwise Simulink throws an error
coder.extrinsic('py.Example.test') % Python functions have to be run extrinsically, meaning no C code generated
out = py.Example.test(in1,in2);
And the Python code (in Example.py file) is:
out = in1+in2
Weiwu Li on 19 Oct 2021
Edited: Weiwu Li on 19 Oct 2021
You can either use a MATLAB function block or a MATLAB System block to bring Python code into Simulink.
You can refer to the Simulink doc for a simple example:
For a more complex / realistic example (using Python for human detection), you can refer to this file exchange submission: