User`s manual
C MEX-Files
2-3
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:
•A computational routine that contains the code for performing the 
computations that you want implemented in the MEX-file. Computations 
can be numerical computations as well as inputting and outputting data.
•A gateway routine that interfaces the computational routine with MATLAB 
by the entry point 
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.










