Mercurial > hg > octave-nkf
diff examples/myset.c @ 5864:e884ab4f29ee
[project @ 2006-06-22 00:57:27 by jwe]
author | jwe |
---|---|
date | Thu, 22 Jun 2006 00:57:28 +0000 |
parents | |
children | 4270ded9ddc6 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/examples/myset.c @@ -0,0 +1,33 @@ +#include "mex.h" + +void +mexFunction (int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) +{ + char *str; + mxArray *v; + + if (nrhs != 2 || ! mxIsString (prhs[0])) + mexErrMsgTxt ("expects symbol name and value"); + + str = mxArrayToString (prhs[0]); + + v = mexGetArray (str, "global"); + + if (v) + { + mexPrintf ("%s is a global variable with the following value:\n", str); + mexCallMATLAB (0, 0, 1, &v, "disp"); + } + + v = mexGetArray (str, "caller"); + + if (v) + { + mexPrintf ("%s is a caller variable with the following value:\n", str); + mexCallMATLAB (0, 0, 1, &v, "disp"); + } + + // WARNING!! Can't do this in MATLAB! Must copy variable first. + mxSetName (prhs[1], str); + mexPutArray (prhs[1], "caller"); +}