Todos los archivos MEX que se requieren para enlazar código escrito en C y código de MATLAB contienen componentes necesarios para su correcto funcionamiento.
Dentro de éstos se incluyen; una librería "mex.h" que contiene las funciones de la API del sistema operativo, una función llamada "mexFunction" que permite realizar funciones de gateway, un arreglo llamado "mxArray" y funciones propias de la API.
La librería mex.h se incluye en las declaraciones del código tal como se muestra a continuación:
#include <stdio.h>
#include <stdlib.h>
#include "mex.h"
#include <stdlib.h>
#include "mex.h"
Luego se declara la función principal del código por medio de mexFunction, y se utilizan cuatro parámetros básicos, tal como se muestra a continuación:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
{
código
}
Los parámetros se describen en la siguiente tabla:
mexFunction | Name of the gateway routine (same for every MEX-file) |
nlhs | Number of expected mxArrays (Left Hand Side) |
plhs | Array of pointers to expected outputs |
nrhs | Number of inputs (Right Hand Side) |
prhs | Array of pointers to input data. The input data is read-only and should not be altered by your mexFunction . |
Por otra parte mxArray permite trabajar con distintos tipos de datos en forma estructurada, y es la forma en cómo los datos del código en C se comunican con los datos del código propio de MATLAB.
Finalmente, las funciones usadas, propias de la API que estan en la librería mex.h, se caracterizan por tener como prefijo la palabra mex, sin embargo tienen la misma funcionalidad que el lenguaje C. Por ejemplo la función printf() del lenguaje C equivale a la función mexprintf() de las funciones de esta interfaz.