jueves, 27 de octubre de 2011

Partes esenciales de un archivo MEX

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"

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.



1 comentario:

  1. por que me marca error al compilar el programa en c el error me dice que esta al llamar la funcion mex.h, Saludos

    ResponderEliminar