mexPrintf to standard error
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Jim Hokanson
am 5 Dez. 2016
Kommentiert: Jim Hokanson
am 6 Dez. 2016
Is it possible to direct the output of mexPrintf to standard error? I'd like something like in Matlab where you can do fprintf(2,...) to print out error code.
2 Kommentare
James Tursa
am 6 Dez. 2016
Do you mean dynamically redirect all mexPrintf output at runtime? I.e., used to go to screen but now goes to standard error?
Akzeptierte Antwort
James Tursa
am 6 Dez. 2016
Brute force? I can't think of another way to get at the MATLAB standard error printing. E.g.,
/* Includes ----------------------------------------------------------- */
#include "mex.h"
#include <stdio.h>
/* Global variables --------------------------------------------------- */
char s[2000];
mxArray *rhs[2];
/* Functions ---------------------------------------------------------- */
void mexPrintf2(char *s)
{
rhs[1] = mxCreateString(s);
mexCallMATLAB(0,NULL,2,rhs,"fprintf");
mxDestroyArray(rhs[1]);
}
/* Gateway ------------------------------------------------------------ */
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
rhs[0] = mxCreateDoubleScalar(2.0);
sprintf(s,"This is a test\nThis is only a test\nIn an actual emergency ...\n");
mexPrintf2(s);
sprintf(s,"The number %d + %d = %d\n",1,2,1+2);
mexPrintf2(s);
mxDestroyArray(rhs[0]);
}
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Write C Functions Callable from MATLAB (MEX Files) 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!