Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Agregar funciones a scripts

A partir de la versión R2016b, los scripts de MATLAB®, incluidos los scripts en vivo, pueden contener código para definir funciones. Estas funciones se denominan funciones locales. Las funciones locales son útiles si desea reutilizar código de un script. Agregando funciones locales, puede evitar la creación y administración de archivos de funciones independientes. También son útiles para experimentar con funciones, que se pueden agregar, modificar y eliminar fácilmente según sea necesario.

Crear un script con funciones locales

Para crear un script o script en vivo con funciones locales, vaya a la pestaña Home y seleccione New Script o New Live Script. Después, agregue código al archivo. Agregue todas las funciones locales al final del archivo, después del código del script. Incluya al menos una línea de código de script antes de las funciones locales. Cada función local debe comenzar con su propia instrucción de definición de función y acabar con la palabra clave end. Las funciones pueden aparecer en cualquier orden.

Por ejemplo, cree un script llamado mystats.m.

edit mystats

En el archivo, incluya dos funciones locales, mymean y mymedian. El script mystats declara un arreglo, determina la longitud del arreglo y, después, utiliza las funciones locales mymean y mymedian para calcular la media y la mediana del arreglo.

x = 1:10;
n = length(x);
avg = mymean(x,n);
med = mymedian(x,n);

function a = mymean(v,n)
% MYMEAN Local function that calculates mean of array.

    a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Local function that calculates median of array.

    w = sort(v);
    if rem(n,2) == 1
        m = w((n + 1)/2);
    else
        m = (w(n/2) + w(n/2 + 1))/2;
    end
end

Al agregar funciones locales a un script en vivo, MATLAB agrega automáticamente un salto de sección antes de la primera definición de función local y elimina todos los saltos de sección posteriores. Esto se debe a que Live Editor no admite secciones individuales dentro de funciones locales.

Ejecutar scripts con funciones locales

Para ejecutar un script o script en vivo que incluye funciones locales, en la pestaña Editor o Live Editor, haga clic en el botón Run. También puede escribir el nombre del script guardado en la ventana de comandos.

Para ejecutar una sección individual dentro de un script o script en vivo, coloque el cursor en la sección y utilice el botón Run Section (se requiere la versión R2017b o posterior para los archivos .m). En scripts en vivo o funciones (archivos .mlx), solo puede ejecutar secciones cuando estas anteceden a las definiciones de las funciones locales.

Restricciones de las variables y funciones locales

Las funciones locales solo son visibles en el archivo cuando están definidas. No son visibles para funciones de otros archivos y no se las puede llamar desde la ventana de comandos.

Las funciones locales del archivo actual tienen prioridad sobre las funciones de otros archivos. Es decir, cuando llama a una función de un script, MATLAB comprueba si la función es una función local antes de buscar la función en otras ubicaciones. Esto le permite crear una versión alternativa de una función en particular y, a la vez, conservar la original en otro archivo.

Los scripts crean y acceden a variables en el área de trabajo básica. Las funciones locales, como todas las demás funciones, tienen sus propias áreas de trabajo independientes del área de trabajo básica. Las funciones locales no pueden acceder a las variables del área de trabajo de otras funciones o del área de trabajo básica a menos que las pase como argumentos.

Acceder a la ayuda de las funciones locales

Aunque no puede llamar a una función local desde la línea de comandos o desde funciones de otros archivos, puede acceder a su ayuda con el comando help. Especifique los nombres del script y de la función local, separándolos con un carácter >:

Por ejemplo:

help mystats>mymean
 mymean Local function that calculates mean of array.

Temas relacionados