1. Necesitamos el programa desarrolado en c, con la siguiente libreria y cabecera:
#include "mex.h"
/* mexFunction es la rutina de enlace con el código C. */
/* mexFunction es la rutina de enlace con el código C. */
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
/*Codigo*/
}
2. Guardar el archivo .c en la carpeta de trabajo de matlab
3. Para compilar el codigo utilizar el siguiente comando:
>> mex -v -g archivo.c
4. Matlab nos genera un archivo .mexw32, quese guarda automaticamente en la carpeta de trabajo de matlab, este archivo lo llamamos como una funcion desde la ventana de comandos o desde un script de matlab
>> archivo
Código en C:
#include <stdio.h>
#include <stdlib.h>
#include "mex.h"
/* mexFunction es la rutina de enlace con el código C. */
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
double a, b, suma,resta, multiplicacion,division;
a=2;
b=3;
mexPrintf ("valor de a:%g \n",a);
mexPrintf ("valor de b:%g \n\n",b);
suma=a+b;
resta=a-b;
multiplicacion=a*b;
division=a/b;
mexPrintf ("Valor de suma:%g\n",suma);
mexPrintf ("Valor de resta:%g\n",resta);
mexPrintf ("Valor de multiplicacion:%g\n",multiplicacion);
mexPrintf ("Valor de division:%g\n",division);
/*return EXIT_SUCCESS;*/
}
Guardamos el archivos en la carpeta MATLAB
Compilación desde la ventana de comandos de matlab
Se crea el archivo suma.mexw32
Ejecutamos como una función
No hay comentarios:
Publicar un comentario