Main Content

La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.

Crear funciones en archivos

Tanto los scripts como las funciones permiten reutilizar secuencias de comandos guardándolos en los archivos de programa. Los scripts son el tipo de programa más simple, dado 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 denominada 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 se debe definir en un archivo, no en la línea de comandos. A menudo, se almacena una función en su propio archivo. En dicho caso, se recomienda utilizar el mismo nombre para la función y el archivo (en este ejemplo, fact.m), dado 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, utilizando las mismas reglas sintácticas que se aplican a las funciones instaladas con 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 script. Por ejemplo, cree un archivo denominado 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 una 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)

Utilice caracteres en minúscula para la palabra clave.

Argumentos de salida (opcional)

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

function myOutput = myFunction(x)

Si la función devuelve más de un valor de salida, introduzca los nombres de los valores de salida entre corchetes.

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

Si no hay ningún valor de salida, puede omitirlo.

function myFunction(x)

También puede utilizar corchetes vacíos.

function [] = myFunction(x)

Nombre de la función (obligatorio)

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

Nota

Para evitar confusiones, utilice el mismo nombre tanto para el archivo de función como para la primera función del archivo. MATLAB asocia el programa con el nombre del archivo, 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 (opcional)

Si la función admite valores de entrada, introduzca sus nombres entre paréntesis después del nombre de la función. Separe los valores de entrada con comas.

function y = myFunction(one,two,three)

Si no hay ningún valor de entrada, 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 le 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 válidas de MATLAB, instrucciones de estructuras de control, comentarios, líneas en blanco y funciones anidadas. Las variables que se creen dentro de una función se almacenan dentro de un área de trabajo específica de dicha función, que se encuentra separada del área de trabajo básica.

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 la función que MATLAB asocia con el nombre del archivo. Las funciones que siguen a la función principal o al código de script se denominan funciones locales. Las funciones locales solo están disponibles dentro del archivo.

Instrucciones end

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. La instrucción end es obligatoria si:

  • Una función del archivo contiene una función anidada (una función contenida por completo en su elemento 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, utilice end para mejorar la legibilidad del código.

Consulte también

Temas relacionados