mexPrintf to standard error
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Jim Hokanson
el 5 de Dic. de 2016
Comentada: Jim Hokanson
el 6 de Dic. de 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 comentarios
James Tursa
el 6 de Dic. de 2016
Do you mean dynamically redirect all mexPrintf output at runtime? I.e., used to go to screen but now goes to standard error?
Respuesta aceptada
James Tursa
el 6 de Dic. de 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]);
}
Más respuestas (0)
Ver también
Categorías
Más información sobre Write C Functions Callable from MATLAB (MEX Files) en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!