jueves, 27 de octubre de 2011

Ejemplo de Programa en C portado a Matlab

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. */
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

Desarrolo del ejemplo:


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