Running python script in C S-function Simulink

I have been trying to run python scripts in matlab using the matlab function "system", but it gives me the output at the end of the script execution. I wanted to extract that output in real-time to proccess it in Simulink, so, is there any way to implement it for that purpose in a C-Sfunction?
That script uses variables from different python scripts and sends the output via print and not return.

回答(1 个)

Can you change your python code to write to a file? Then your matlab code can read from the file to get the output.

3 个评论

I tried this, but if I read the file while the script is executing (using csvread), it stops its execution because another proccess is using it, so it can no longer write in that file to be read by matlab, being impossible to do real-time proccessing.
Use that as a lock. The python code needs a while-loop to wait for the file to be available to write. Same thing in the matlab code. Use a while loop to wait for the file to be avaliable to read. Both side shall release the handle once it is done with reading/writing.
I will try this. Is there any way to share a boolean variable between the python script and matlab to sinchronize the avalaibility of reading/writing, or any other way to tell the other side that they are done?

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Call Python from MATLAB 的更多信息

产品

版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by