Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Cree funciones en archivos

Tanto los scripts como las funciones permiten reutilizar secuencias de comandos almacenándolos en archivos de programa. Los scripts son el tipo de programa más simple, ya que almacenan comandos que están escritos exactamente como deberían introducirse en la línea de comandos. Las funciones brindan más flexibilidad, principalmente porque se pueden pasar valores de entrada y devolver valores de salida. Por ejemplo, esta función llamada fact calcula el factorial de un número (n) y devuelve el resultado (f).

function f = fact(n)
    f = prod(1:n);
end

Este tipo de función debe definirse en un archivo y no en la línea de comandos. A menudo, se almacena una función en su propio archivo. En dicho caso, se recomienda usar el mismo nombre para la función y para el archivo (en este ejemplo, fact.m), ya que MATLAB® asocia el programa con el nombre del archivo. Guarde el archivo en la carpeta actual o en una carpeta de la ruta de búsqueda de MATLAB.

Puede llamar a la función desde la línea de comandos, usando las mismas reglas sintácticas que se aplican a las funciones instaladas en MATLAB. Por ejemplo, calcule el factorial de 5.

x = 5;
y = fact(5)
y =

   120

A partir de la versión R2016b, otra opción para almacenar funciones es incluirlas al final de un archivo de scripts. Por ejemplo, cree un archivo llamado mystats.m con algunos comandos y dos funciones, fact y perm. El script calcula la permutación de (3,2).

x = 3;
y = 2;
z = perm(x,y)

function p = perm(n,r)
    p = fact(n)*fact(n-r);
end

function f = fact(n)
    f = prod(1:n);
end

Llame al script desde la línea de comandos.

mystats
z =

     6

Sintaxis de la definición de función

La primera línea de cada función es la instrucción de la definición, que incluye los siguientes elementos.

Palabra clave function (obligatoria)

Escriba la palabra clave con caracteres en minúscula.

Argumentos de salida (opcionales)

Si la función devuelve una salida, se puede especificar el nombre de la salida después de la palabra clave function.

function myOutput = myFunction(x)

Si la función devuelve más de una salida, delimite los nombres de las salidas entre corchetes.

function [one,two,three] = myFunction(x)

Si no hay ninguna salida, puede omitirlo.

function myFunction(x)

O puede usar corchetes vacíos.

function [] = myFunction(x)

Nombre de función (obligatorio)

Los nombres de función válidos siguen las mismas reglas que los nombres de variables. Deben empezar con una letra y pueden contener letras, dígitos o guiones bajos.

Nota

Para evitar confusiones, use el mismo nombre tanto para el archivo de la función como para la primera función del archivo. MATLAB asocia el programa con el nombre del archivo y no con el nombre de la función. Los archivos de script no pueden tener el mismo nombre que una función del archivo.

Argumentos de entrada (opcionales)

Si la función acepta entradas, delimite sus nombres entre paréntesis después del nombre de la función. Separe las entradas con comas.

function y = myFunction(one,two,three)

Si no hay entradas, puede omitir los paréntesis.

Sugerencia

Al definir una función con varios argumentos de entrada o salida, enumere primero los argumentos obligatorios. Este orden permite llamar a la función sin especificar argumentos opcionales.

Contenido de las funciones y los archivos

El cuerpo de una función puede incluir expresiones de MATLAB válidas, instrucciones de estructuras de control, comentarios, líneas en blanco y funciones anidadas. Las variables que se creen en una función se almacenan en un área de trabajo específica para dicha función, que está separada del área de trabajo base.

Los archivos de programa pueden contener varias funciones. Si el archivo solo contiene definiciones de funciones, la primera función es la función principal y es la función que MATLAB asocia con el nombre del archivo. Las funciones que siguen el código del script o la función principal se llaman funciones locales. Las funciones locales solo están disponibles en el archivo.

Finalizar instrucciones

Las funciones finalizan con una instrucción end, el final del archivo o la línea de definición de una función local, lo que ocurra primero. Se requiere la instrucción end si:

  • Cualquier función del archivo contiene una función anidada (una función completamente contenida dentro de la función principal).

  • La función es una función local dentro de un archivo de función, y cualquier función local del archivo utiliza la palabra clave end.

  • La función es una función local dentro de un archivo de script.

Aunque a veces es opcional, use end para mejorar la legibilidad del código.

Consulte también

Temas relacionados