Calling python function using Matlab Python Coexecution
37 views (last 30 days)
Show older comments
Hello everyone, I was trying to integrate my Neural Network model which is written in python to my simulink model. For this Integration I am using the Matlab python Coexecution option. After a demo Coexection (using my ML model and random inputs from matlab) it worked perfectly and predicted those random values as it should. Once I test there I created a matlab function in Simulink and tried to call this python model but somehow I am getting this error. "Attempt to extract field 'infer' from 'mxArray'. Function 'AEB_Trigger/MATLAB Function3' (#38.1529.1537), line 30, column 14: "py_model"
FYI: the inputs for the Matlab and or Python model are coming from another environment (virtual simulation), but I am quite sure that doesnt have an effect on this error. The Coexecution even works in the Matlab Command window, but having a problem when it is connected to those inputs.
Matlab Verison:2021a
Python: 3.7
Thank you very much for the time;)
0 Comments
Answers (1)
Oliver Jaehrig
on 10 Oct 2024 at 12:03
I can simply recommend to put the code into it's own function which would create a layer around it and then use coder.extrinsic to declare this particular function as extrinsic and then call this function in the MATLAB Function block.
The function itself should only get inputs and outputs with valid Simulink types. Such errors occur since Simulink cannot handle this special type since the object you get is not handled as extrinsic.
So the additional function should solve this actually.
If you need any further support, please also consider to contact our Technical Support department.
See Also
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!