Tecnología

Inicio

Cómo Interfaz C a MATLAB

Cómo Interfaz C a MATLAB


MATLAB es un entorno de programación técnica optimizada para competir con la velocidad y la eficiencia del lenguaje C cuando se trata de operaciones vectoriales. Sin embargo, hay un cierto conjunto de operaciones en la que C es mucho más eficiente. Puede ser beneficioso para escribir ciertas partes de su flujo de trabajo en los dos programas de MATLAB y C. C puede compilarse en subrutinas de MATLAB utilizando la utilidad "MEX".

Instrucciones

1 Crear una copia del archivo de programa C que desee para adaptarse a una subrutina MATLAB.

2 Añadir el archivo de cabecera "mex.h" al archivo de programa C que desea recopilar en una subrutina MATLAB:

incluir "mex.h"

3 Agregar una función de pasarela "mexFunction" a su archivo de programa en C tras su función subrutina para actuar como interfaz entre MATLAB y su código C. Los argumentos de "mexFunction" deben incluir todos los argumentos de entrada y de salida para el subprograma.

4 Escribir código en "mexFunction" para validar el número de entradas y salidas requeridas, así como el tipo de datos adecuado, el tamaño y alcance. El lenguaje y las funciones C no fallan con tanta gracia como funciones de MATLAB basadas en scripts.

5 Utilice la opción "mexErrMsgIdAndTxt) (" la función de lanzar errores a MATLAB cuando los argumentos son incorrectos:

mexErrMsgIdAndTxt ( "MyToolbox: myMexFunction: missingInput", "Ausencia de entrada myMexFunction requiere 2 entradas..");

6 Uso MEX "getter" funciones de MATLAB para convertir de formato de datos de entrada de datos a formato C:

myNumber = mxGetScalar (myInputs [0]);
myMatrixPointer = mxGetPr (myInputs [1]);

Consulte la documentación de MATLAB para obtener una lista completa de estas funciones.

7 Utilice MEX funciones "Crear" para crear datos de MATLAB en el que almacenar el resultado de la función C. La entrada "mxREAL" especifica el tipo de datos.

myOutputs [0] = mxCreateDoubleMatrix (1, nColumns, mxREAL);
outputMatrixInMATLAB = mxGetPtr (myOutputs [0]);

8 Llame a su subrutina C desde dentro de su "mexFunction."

9 directorio de trabajo actual de MATLAB directo al directorio que contiene el archivo de C usando el menú Archivo o el comando "cd" para cambiar de directorio desde la línea de comandos.

10 Compilar el programa en C usando el comando de MATLAB "MEX:"

Mex myMexFunction.c

11 Ejecutar su función en MATLAB:

myMexFunction (entradas, salidas, ...)