How can I use "mexPrintf" for simulation and "printf" for code generation in a MATLAB Function Block using coder.ceval?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 12 Okt. 2018
Beantwortet: MathWorks Support Team
am 24 Jun. 2019
I am using a MATLAB Function block in my Simulink model. My MATLAB function calls a custom C functions using "coder.ceval". I want to use "mexPrintf" in my C function during simulation but the standard C "printf" when building the model. How can I do this?
Akzeptierte Antwort
MathWorks Support Team
am 25 Jun. 2019
You can use the "MATLAB_MEX_FILE" C preprocessor macro in your custom C code to determine whether you are compiling for a MEX target. For example, you can use this macro to define a custom "printOutput" function:
#include <stdio.h>
#include <stdlib.h>
#ifdef MATLAB_MEX_FILE
#include "mex.h"
#endif
void printOutput(const char* str);
#ifdef MATLAB_MEX_FILE
// Use the mexPrintf function
void printOutput(const char* str) {
mexPrintf(str);
}
#else
// Use the standard C printf function
void printOutput(const char* str) {
printf(str);
}
#endif
This function is defined to call "mexPrintf" when compiled for a MEX and "printf" otherwise.
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!