Funciones en Linea de Matlab (inline Functions)

Como ya sabemos Matlab posee grandes capacidades en el ámbito científico, hoy vamos a ver una cualidad más, y es el hecho de que Matlab nos permite realizar definiciones rápidas de funciones, es decir, antes cuando creábamos una nueva función, esta debía ser declarada y escrita en un fichero con extensión .m y guardada en disco, esto es útil cuando una función hace parte de un programa extenso e incluso la cantidad de código que debe escribirse es considerable, sin embargo, hay ocasiones donde necesitamos declarar algunas funciones cortas que se deben ejecutar de forma repetitiva, esto es, por ejemplo una función matemática tipo f(x)=x*cos(x), no vale la pena (si no es necesario) utilizar variables simbólicas ya que esto hace que debido a la carga de procesamiento, nuestro programa vaya más lento.

Matlab nos proporciona lo que conocemos como ‘inline functions’ o en español como ‘funciones en linea’ o ‘de linea‘, esto nos permite crear en la misma ventana de comandos, una corta función que puede ser llamada de forma repetida, supongamos que quiero hacer una función f(x) = sen(x)/x, entonces la sintaxis es la siguiente.

inline1

Como pueden ver, solo basta con poner el nombre la función, seguidamente el signo igual (=) y luego el comando inline(), dentro de este, el cuerpo de la función debe ser escrito entre comillas simples ( ‘ ‘ ) como si estuviésemos definiendo una cadena de caracteres. Así cuando ingresemos un valor, este será evaluado en la función y se retornará el valor respectivo al terminar la ejecución de la misma, por ejemplo.

inline2

Con lo anterior nos ahorramos entonces, tener que reescribir esa expresión cada vez que la necesitemos evaluar o tener que guardarla como una función genérica en un archivo en disco, también evitamos tener que usar por  ejemplo variables simbólicas, las cuales para ser evaluadas o manipuladas requieren de una mayor cantidad de procesamiento por parte de Matlab, si tenemos en cuenta que necesitamos hacer muchas operaciones con dicha función, entonces las variables simbólicas generarían perdidas de tiempo y un mayor esfuerzo computacional, lo contrario ocurre si usamos funciones en linea, ya que no necesitamos funciones como subs() polyval() o feval() para evaluar valores en ellas.

Existen unas reglas básicas para el uso efectivo de este tipo de funciones en Matlab y son las siguientes:

  • La expresión matemática puede contener una o más variables independientes, f(x,y,z…,n).
  • Se puede usar cualquier letra como variable independiente excepto i y j (porque son las constantes complejas de Matlab).
  • La expresión matemática puede contener cualquier función de Matlab o las que sean definidas por el usuario.
  • La expresión se debe escribir según la dimensión de los argumentos de entrada (por ejemplo operaciones elemento a elemento cuando se trabaja con vectores o matrices).
  • La expresión no puede incluir variables predefinidas en el workspace (no tiene acceso a ellas).
  • Una vez que se define la función, ésta puede ser usada tecleando su nombre y pasando sus argumentos de entrada como en el ejemplo anterior.
  • Una funciones inline (o de linea), también se puede usar como argumento de entrada en otras funciones.

A modo de ejemplo vamos a definir la siguiente función de forma ‘inline’.

inline3

Entonces procedemos a crear una función que llamaremos por ejemplo F y la declararemos inline como se ve en la siguiente figura.

tut7

Y evaluemos ahora esa función en un valor arbitrario, esto se haría de la siguiente forma (cómo es de esperarse).

tut8

 

 

 Funciones inline con más de una variable independiente.

Se pueden también definir funciones con más de una variable independiente, y esto lo podemos lograr siguiendo el formato de definición de la siguiente figura.

inline4

Como podemos ver, lo único que se ha agregado son los nombres de los argumentos de entrada, estos argumentos se usan al interior de la expresión matemática, esto también define el orden en que se deben ingresar los datos de entrada cuando la función va a ser invocada, por ejemplo, definamos una función que dependa de dos variables X y Y, entonces una definición posible sería la siguiente.

inline5

Como podemos ver, ya ha sido definida de forma correcta, ahora para comprobar su funcionamiento, solo basta ingresar dos valores, que corresponderían a X y Y respectivamente, según hemos indicado en la definición, así ingresamos por ejemplo 2 y 3.

inline6

Hasta aquí este artículo sobre las funciones inline o funciones de linea en Matlab, espero que haya sido de su ayuda, si tienen alguna sugerencias para esta entrada o el blog en general, no dudes en dejar un comentario, saludos.

Autor: Julio César Echeverri.

2 comentarios en “Funciones en Linea de Matlab (inline Functions)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s