mexPrintf to standard error
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
James Tursa
2016-12-6
Do you mean dynamically redirect all mexPrintf output at runtime? I.e., used to go to screen but now goes to standard error?
采纳的回答
James Tursa
2016-12-6
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]);
}
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!