Skip to Main Content Skip to Search
Product Documentation

mexCallMATLAB (C and Fortran) - Call MATLAB function, user-defined function, or MEX-file

C Syntax

#include "mex.h"
int mexCallMATLAB(int nlhs, mxArray *plhs[], int nrhs,
  mxArray *prhs[], const char *functionName);

Fortran Syntax

integer*4 mexCallMATLAB(nlhs, plhs, nrhs, prhs, functionName)
integer*4 nlhs, nrhs
mwPointer plhs(*), prhs(*)
character*(*) functionName

Arguments

nlhs

Number of output arguments

plhs

Array of pointers to output arguments

nrhs

Number of input arguments

prhs

Array of pointers to input arguments

functionName

Character string containing name of the MATLAB built-in function, operator, user-defined function, or MEX-file you are calling

Returns

0 if successful, and a nonzero value if unsuccessful.

Description

Call mexCallMATLAB to invoke internal MATLAB numeric functions, MATLAB operators, user-defined functions, or other MEX-files. Both mexCallMATLAB and mexEvalString execute MATLAB commands. Use mexCallMATLAB for returning results (left-hand side arguments) back to the MEX-file. The mexEvalString function cannot return values to the MEX-file.

For a complete description of the input and output arguments passed to functionName, see mexFunction. When calling the mexCallMATLAB function, the number of output arguments nlhs and input arguments nrhs must be less than or equal to 50.

MATLAB allocates dynamic memory to store the mxArrays in plhs. MATLAB automatically deallocates the dynamic memory when you clear the MEX-file. However, if heap space is at a premium, call mxDestroyArray when you are finished with the mxArrays plhs points to.

If functionName is an operator, place the operator inside a pair of single quotes, for example, '+'.

This function returns two variables but only assigns one of them a value:

function [a,b] = foo[c]
a = 2*c;

If you then call foo using mexCallMATLAB, the unassigned output variable is now type mxUNKNOWN_CLASS.

Error Handling

If functionName detects an error, MATLAB terminates the MEX-file and returns control to the MATLAB prompt. If you want to trap errors, use the mexCallMATLABWithTrap function.

Examples

See the following examples in matlabroot/extern/examples/mex.

See the following examples in matlabroot/extern/examples/refbook.

See the following examples in matlabroot/extern/examples/mx.

See Also

mexFunction, mexCallMATLABWithTrap, mexEvalString, mxDestroyArray

  


Recommended Products

Includes the most popular MATLAB recorded presentations with Q&A sessions led by MATLAB experts.

 © 1984-2012- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS