Funciones en Matlab
Hablemos de cómo crear una función en Matlab, ¿de acuerdo?
Entonces, ¿qué es una función? Es un fragmento de código en un programa que puedes ejecutar siempre que lo necesites. El código de una función está separado del programa principal y puede estar ubicado tanto en el mismo archivo como en un archivo diferente. El uso de funciones te permite hacer que el código de un programa sea más conciso y ordenado.
Para definir una función en Matlab, necesitas seguir esta sintaxis:
function [y1, y2, ...] = nombre_funcion([x1, x2, ...])
código a ejecutar
end
- Las letras x1, x2... representan las variables de entrada que la función recibe de la llamada.
- Las letras y1, y2... representan las variables de salida que la función devuelve al programa que la llama.
En Matlab, las funciones siempre deben agregarse en las últimas líneas de un script. De lo contrario, el script te dará un error.
Una vez que hayas definido una función, puedes llamarla desde diferentes partes del programa y ejecutarla varias veces.
Ejemplo
Permíteme darte un ejemplo práctico. Supongamos que quieres escribir un nuevo script y crear una función llamada "promedio()".
Esta función debe recibir dos datos numéricos x1 y x2 como entrada y devolver su media aritmética y como salida.
Así es como puedes definir la función en Matlab:
function y = promedio(x1, x2)
y = (x1 + x2) / 2;
end
Ahora, puedes insertar una llamada a la función "promedio()" en el código del programa principal. Por ejemplo:
m = promedio(2, 4);
disp(m);
function y = promedio(x1, x2)
y = (x1 + x2) / 2;
end
La función "promedio()" recibe los dos valores de entrada x1=2 y x2=4, calcula su media y=(2+4)/2=3 y devuelve el resultado y=3 al programa que la llamó.
El programa que la llamó recibe el valor de salida de la función (3) y lo asigna a la variable "m" (m=3).
Finalmente, el programa imprime el valor de "m" en la pantalla.
3
Si lo deseas, también puedes hacer otra llamada a la función "promedio()" en el programa principal, pasando diferentes valores como entrada. Por ejemplo:
m = promedio(2, 4);
disp(m);
m = promedio(4, 6);
disp(m);
function y = promedio(x1, x2)
y = (x1 + x2) / 2;
end
- Nota. Como puedes ver, el programa llama a la función "promedio()" dos veces desde dos puntos diferentes en el programa principal.
- La primera vez, pasa los valores 2 y 4, recibiendo 3 como respuesta.
- La segunda vez, pasa los valores 4 y 6, recibiendo 5 como respuesta.
Esta vez, la función "promedio()" recibe los valores de entrada x1=4 y x2=6, calcula su media y=(4+6)/2=5 y devuelve el resultado y=5 al programa que la llamó.
El programa que la llamó recibe el valor de salida de la función (5), lo asigna a la variable "m" (m=5) e imprime el valor de "m" en la pantalla.
Por lo tanto, esta vez la salida es 5.
3
5
Así que, como puedes ver, definir y utilizar funciones en Matlab es bastante simple y directo.
Te permite escribir código más eficiente y organizado, lo cual es siempre algo positivo en cualquier lenguaje de programación.
Cómo devolver múltiples valores de salida
En Matlab, de hecho, puedes devolver más de un valor de una función. Es bastante práctico, de verdad.
Permíteme mostrarte un ejemplo.
Supongamos que tenemos esta función llamada "potencia" que toma un solo valor de entrada y produce dos valores de salida.
[y1, y2] = potencia(2);
disp(y1);
disp(y2);
function [y1, y2] = potencia(x)
y1 = x^2;
y2 = x^3;
end
En este caso, la llamada [y1, y2] = potencia(2) pasa un solo valor de entrada x=2 a la función.
La función potencia() calcula el cuadrado x2=4 y el cubo x3=8 de la variable x=2 y los devuelve al programa que la llamó.
El programa que la llamó recibe los dos valores de salida, los asigna a las variables y1=4 y y2=8 y finalmente los imprime en la pantalla.
4
8
La instrucción return
Pero, ¿qué pasa si queremos salir de la función antes de que termine de ejecutar todas las instrucciones en el bloque de código? Ahí es donde la instrucción "return" resulta ser muy útil.
La instrucción return permite salir de una función prematuramente.
Cuando Matlab encuentra la instrucción return dentro del bloque de código de una función, termina la ejecución de dicha función y devuelve el control al programa que la ha llamado.
Nota. Si no se incluye la instrucción return en el bloque de código, el control vuelve automáticamente al programa que realizó la llamada tras la ejecución de la última instrucción del bloque de la función.
Por ejemplo, observa esta versión modificada de la función "power":
[y1,y2]=power(-2);
disp(y1);
disp(y2);
function [y1, y2] = power(x)
if x<0
y1=0
y2=0
return
end
y1=x^2;
y2=x^3;
end
Aquí, hemos añadido una instrucción "if" para comprobar si el valor de entrada es negativo.
Si lo es, establecemos los valores de salida en 0, y luego salimos inmediatamente de la función utilizando la instrucción "return".
Esto nos permite volver prematuramente sin ejecutar más instrucciones en el bloque de código.
En este código de ejemplo, dado que el valor pasado es negativo (x<0), la instrucción return termina la ejecución de la función power(), devolviendo los resultados y1=0 y y2=0.
0
0
Así que ahí lo tienes, la instrucción "return" puede ser muy útil para salir de funciones prematuramente. Solo recuerda usarla con prudencia y solo cuando sea necesario.