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.

Funciones locales

En este tema se explica el término función local y se muestra cómo crear y usar funciones locales.

Los archivos de programa de MATLAB® pueden contener código de más de una función. En un archivo de función, la primera función del archivo se denomina función principal. Esta función es visible para funciones de otros archivos o puede llamarla desde la línea de comandos. El resto de funciones del archivo se denominan funciones locales y pueden aparecer en cualquier orden después de la función principal. Las funciones locales solo son visibles para otras funciones del mismo archivo. Son equivalentes a las subrutinas de otros lenguajes de programación y a veces se denominan subfunciones.

A partir de la versión R2016b, también puede crear funciones locales en un archivo de script, siempre que aparezcan después de la última línea del código de script. Para obtener más información, consulte Agregar funciones a scripts.

Por ejemplo, cree un archivo de función llamado mystats.m que contenga una función principal, mystats, y dos funciones locales, mymean y mymedian.

function [avg, med] = mystats(x)
n = length(x);
avg = mymean(x,n);
med = mymedian(x,n);
end

function a = mymean(v,n)
% MYMEAN Example of a local function.

a = sum(v)/n;
end

function m = mymedian(v,n)
% MYMEDIAN Another example of a local function.

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

Las funciones locales mymean y mymedian calculan la media y la mediana de la lista de entrada. La función principal mystats determina la longitud de la lista n y la transfiere a 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 la función help. Especifique los nombres del archivo y de la función local, separándolos con un carácter >:

help mystats>mymean
  mymean Example of a local function.

Las funciones locales del archivo actual tienen prioridad sobre los métodos de las clases y las funciones de otros archivos. Es decir, cuando llama a un método o una función dentro de un archivo de programa, MATLAB comprueba si la función es una función local antes de buscar otras funciones principales. Por tanto, puede crear una versión alternativa de una función en particular y, a la vez, conservar la original en otro archivo.

Todas las funciones, incluidas las funciones locales, tienen sus propias áreas de trabajo independientes del área de trabajo básica. Las funciones locales no pueden acceder a las variables utilizadas por otras funciones a menos que las pase como argumentos. En cambio, las funciones anidadas (funciones contenidas por completo en otra función) pueden acceder a las variables utilizadas por las funciones que las contengan.

Consulte también

Temas relacionados