How to pass data by reference to a function in Simulink
조회 수: 12 (최근 30일)
이전 댓글 표시
MathWorks Support Team
2021년 2월 26일
편집: MathWorks Support Team
2025년 2월 7일
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?
채택된 답변
MathWorks Support Team
2025년 1월 25일
편집: MathWorks Support Team
2025년 2월 7일
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
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!