External Interfaces/API Reference | ![]() ![]() |
Call a MATLAB function, or a user-defined M-file or MEX-file
C Syntax
#include "mex.h" int mexCallMATLAB(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[], const char *command_name);
Arguments
nlhs
Number of desired output arguments. This value must be less than or equal to 50.
plhs
mxArray
s. The called command puts pointers to the resultant mxArray
s into plhs
. Note that the called command allocates dynamic memory to store the resultant mxArray
s. By default, MATLAB automatically deallocates this dynamic memory when you clear the MEX-file. However, if heap space is at a premium, you may want to call mxDestroyArray
as soon as you are finished with the mxArray
s that plhs
points to.
nrhs
prhs
command_name
command_name
is an operator, just place the operator inside a pair of single quotes; for example, '+'
.
Returns
0 if successful, and a nonzero value if unsuccessful.
Description
Call mexCallMATLAB
to invoke internal MATLAB numeric functions, MATLAB operators, M-files, or other MEX-files. See mexFunction
for a complete description of the arguments.
By default, if command_name
detects an error, MATLAB terminates the MEX-file and returns control to the MATLAB prompt. If you want a different error behavior, turn on the trap flag by calling mexSetTrapFlag
.
Note that it is possible to generate an object of type mxUNKNOWN_CLASS using mexCallMATLAB
. For example, if you create an M-file that returns two variables but only assigns one of them a value,
function [a,b]=foo[c] a=2*c;
you get this warning message in MATLAB:
Warning: One or more output arguments not assigned during call to 'foo'.
MATLAB assigns output b
to an empty matrix. If you then call foo
using mexCallMATLAB
, the unassigned output variable is given type mxUNKNOWN_CLASS.
Examples
See mexcallmatlab.c
in the mex
subdirectory of the examples
directory.
For additional examples, see sincall.c
in the refbook
subdirectory of the examples
directory; see mexevalstring.c
and mexsettrapflag.c
in the mex
subdirectory of the examples
directory; see mxcreatecellmatrix.c
and mxisclass.c
in the mx
subdirectory of the examples
directory.
See Also
![]() | mexAtExit | mexErrMsgTxt | ![]() |