Características de una función
Invocación
Las funciones se invocan (ejecutan) indicando su nombre y argumentos de entrada entre paréntesis (separados por comas). Las funciones pueden devolver varios resultados en una lista de salida. La forma más general de invocación de una función es la siguiente:
[argSal1, argSal2, ...]=nombre(argEnt1, argEnt2, ....)
Argumentos de entrada
Los argumentos de entrada siempre se pasan por valor, eso significa que:
- Se evalúa la expresión correspondiente y el resultado se pasa a la función.
- Los argumentos pueden ser constantes, identificadores de variables existentes o expresiones.
- Aunque el argumento sea el identificador de una variable, la función no puede modificar dicha variable.
Si una función no precisa de argumentos de entrada, se deben colocar los paréntesis vacíos:
[argSal1, argSal2, ...]=nombre()
Argumentos de salida
Los resultados que calcula una función sólo se pueden devolver a través de los argumentos de salida. La lista de argumentos de salida deben consistir únicamente en identificadores de variables (o variables indexadas) separados por comas. Si la variable existe, su contenido es sustituido por el resultado correspondiente y si no existe se crea, de manera totalmente análoga a lo que se hace en una asignación.
Si no se indica lista de salida, el resultado devuelto por la función es el correspondiente al primer argumento de salida. En este caso la invocación a la función se puede usar como parte de una expresión, por ejemplo
M = ones(10,15) + 3
Una función no puede modificar ninguna variable definida en el espacio de trabajo, salvo que aparezca en su lista de salida. Es decir, las funciones no tienen ningún efecto lateral, ajustándose así a las premisas de la programación estructurada lo que aumenta enormemente la robustez de la aplicación.
Sobrecarga
Dentro de la función es posible conocer, para cada invocación, en número de argumentos de entrada y salida. Gracias a esto, muchas funciones tienen un comportamiento distinto dependiendo del número de argumentos. Incluso el comportamiento puede variar con las dimensiones de los argumentos de entrada (diferente si es escalar, vector, matriz cuadrada, etc.).
Esto permite una sobrecarga de los identificadores de las funciones, ya que con un mismo nombre pueden realizar funciones distintas según el número y tipo de sus parámetros de entrada y salida.
Documentación
Para conocer los detalles del funcionamiento de una función se debe hacer uso del comando help nombreFuncion.
Dada el gran número de funciones disponibles, y la posibilidad de sobrecarga, es muy recomendable utilizar el comando help antes de utilizar funciones que no nos sean habituales.