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.

Añadir funciones a los 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 el código de un script. Al añadir funciones locales, puede evitar crear y administrar archivos de funciones separados. También son útiles para probar funciones, que se pueden añadir, modificar y eliminar fácilmente según sea necesario.

Crear un script con funciones locales

Para crear un script o un script en vivo con funciones locales, vaya a la pestaña Home y seleccione New > Script o New > Live Script. Después, añada código al script. Añada 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 terminar 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 añadir funciones locales a un script en vivo, MATLAB añade automáticamente un salto de sección antes de la definición de la primera función local y elimina todos los saltos de sección que quedan tras ella. Esto se debe a que los scripts en vivo no admiten secciones individuales dentro de las funciones locales.

Ejecutar scripts con funciones locales

Para ejecutar un script o un script en vivo que incluya 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, 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 los archivos .mlx, puede ejecutar secciones solo cuando estas se encuentren antes de las definiciones de las funciones locales.

Restricciones de las funciones locales y variables

Las funciones locales solo se pueden ver en el archivo en el que se hayan definido. Las funciones de otros archivos no las pueden ver ni 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, al llamar a una función en un script, MATLAB comprueba si la función es una función local antes de buscar la función en otras ubicaciones. Esto 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 las variables en el área de trabajo base. Las funciones locales, al igual que el resto de funciones, tienen sus propias áreas de trabajo separadas del área de trabajo base. Las funciones locales no pueden acceder a las variables del área de trabajo de otras funciones o del área de trabajo base, a menos que se pasen 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 la ayuda mediante el comando help. Especifique los nombres del script y de la función local, separándolos con el carácter >.

Por ejemplo:

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

Temas relacionados