Categories
Matemáticas Matlab

Llamar funciones de C desde Matlab

En el siguiente post vamos a profundizar de forma breve en algunos aspectos de como poder llamar funciones de C desde el entorno Matlba recurriendo para ello a http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70primero.pdf, según la cual

Es posible llamar desde MATLAB a funciones programadas en C y en Fortran como si fueran funciones propias de MATLAB. De este modo, una función *.m de MATLAB puede ser sustituida poruna función programada en C o en Fortran que se llama exactamente en la misma forma.

Para que esto sea posible las funciones programadas en C y Fortran han de cumplir una serie de requisitos que se explican más adelante. Estas funciones se compilan y se generan librerías compartidas que son las denominadas funciones MEX. Las funciones MEX son funciones ejecutables “*.dll” ó”*.so” que pueden ser cargadas y ejecutadas por MATLAB de forma automática.

Las funciones MEX tienen varias aplicaciones:

  • Evitan tener que reescribir en MATLAB funciones que ya han sido escritas en C o Fortran.
  • Por motivos de eficiencia puede ser interesante reescribir en C o Fortran las funciones críticaso que consumen más CPU del programa.
  • Las funciones MEX tienen una extensión diferente en función de los sistemas operativos en que
  • hayan sido generadas.

Categories
Matemáticas Teoría de Control

Transformada de Laplace y Matlab

El objetivo de este post es poder profundizar en algunas de las características de la transformada de Laplace y enunicar algunas funciones que permitan realizar su cálculo. Para ello nos apoyaremos en http://webs.uvigo.es/mat.avanzadas/PracMA_14.pdf del profesor   Jose María Cordeiro Alonso de la Universidad de Vigo.

Para realizar el cálculo simbólico de la transformada de Laplace se debe utilizar el comando f=laplace(F), donde  F corresponde a una función escalar cuya variable de trabajo es t mientras que f es una función cuya variable por defecto es s.

Ejemplo 1 de cálculo de la transformada de Laplace

>>syms t s
>>laplace(1,t,s)
ans =1/s

Ejemplo 2 de cálculo de la transformada de Laplace.

>>syms a;
>>laplace(exp(-a*t),t,s)
ans =1/(s+a)