External Interfaces/API |
C MEX-Files
C MEX-files are built by using the mex
script to compile your C source code with additional calls to API routines.
The Components of a C MEX-File
The source code for a MEX-file consists of two distinct parts:
mexFunction
and its parameters prhs
, nrhs
, plhs
, nlhs
, where prhs
is an array of right-hand input arguments, nrhs
is the number of right-hand input arguments, plhs
is an array of left-hand output arguments, and nlhs
is the number of left-hand output arguments. The gateway calls the computational routine as a subroutine.
In the gateway routine, you can access the data in the mxArray
structure and then manipulate this data in your C computational subroutine. For example, the expression mxGetPr(prhs[0])
returns a pointer of type double *
to the real data in the mxArray
pointed to by prhs[0]
. You can then use this pointer like any other pointer of type double *
in C. After calling your C computational routine from the gateway, you can set a pointer of type mxArray
to the data it returns. MATLAB is then able to recognize the output from your computational routine as the output from the MEX-file.
The following C MEX Cycle figure shows how inputs enter a MEX-file, what functions the gateway routine performs, and how outputs return to MATLAB.
Creating C Language MEX-Files | Required Arguments to a MEX-File |