MATLAB Answers


mexPrintf to standard error

Asked by Jim Hokanson on 5 Dec 2016
Latest activity Commented on by Jim Hokanson on 6 Dec 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.


James Tursa
on 6 Dec 2016
Do you mean dynamically redirect all mexPrintf output at runtime? I.e., used to go to screen but now goes to standard error?
I am looking for a command that works like fprintf(2,...) (Matlab) but for mex. Something that prints to the Matlab command window, but in red, rather than in black.

Sign in to comment.


1 Answer

Answer by James Tursa
on 6 Dec 2016
 Accepted Answer

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);
/* 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");
sprintf(s,"The number %d + %d = %d\n",1,2,1+2);

  1 Comment

:) Ha, why not.

Sign in to comment.