How to pass data by reference to a function in Simulink
11 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 26 Feb. 2021
Bearbeitet: MathWorks Support Team
am 7 Feb. 2025
I have a custom C/C++ function which accepts a pointer as an input that I would like to include in my Simulink model. How can I implement this so that I can pass data by reference from Simulink?
Akzeptierte Antwort
MathWorks Support Team
am 25 Jan. 2025
Bearbeitet: MathWorks Support Team
am 7 Feb. 2025
One option for passing data by reference is to create an S-Function block for the custom C/C++ code that accepts pointers. To integrate pre-existing code, you can use the Legacy Code Tool to generate an S-Function block. For more information, execute the following command in the MATLAB R2020b command window:
>> web(fullfile(docroot, 'simulink/sfg/integrating-existing-c-functions-into-simulink-models-with-the-legacy-code-tool.html'))
An alternative approach is to call your C++ function from a MATLAB Function Block using "coder.ceval". You can then pass your inputs by reference using "coder.ref", "coder.rref", or "coder.wref". For example, the call to a C++ function "sort" within the MATLAB Function Block might look like:
coder.ceval('sort', coder.ref(myArray), arrayLength);
For more information on calling C/C++ code from a MATLAB Function block and the different options for passing data by reference, you can access the documentation by executing the following command in the MATLAB R2020b command window:
>> web(fullfile(docroot, 'simulink/ug/incorporate-c-code-using-a-matlab-function-block.html'))
Please follow the link below to search for the required information regarding the current release:
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Simulink Coder finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!