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.

Agregar funciones a secuencias de comandos

los scripts MATLAB®, incluidos los scripts en directo, pueden contener código para definir funciones. Estas funciones se denominan funciones locales. Las funciones locales son útiles si desea reutilizar el código dentro de una secuencia de comandos. Al agregar funciones locales, puede evitar la creación y administración de archivos de función independientes. También son útiles para experimentar con funciones, que se pueden agregar, modificar y eliminar fácilmente según sea necesario. Las funciones en secuencias de comandos se admiten en R2016b o posterior.

Agregar funciones locales

Las funciones locales sólo son visibles en el archivo donde se definen, tanto en el código de secuencias de comandos como en otras funciones locales del archivo. No son visibles para las funciones de otros archivos y no se pueden llamar desde la línea de comandos. Son equivalentes a subrutinas en otros lenguajes de programación, y a veces se llaman subfunciones.

Para agregar funciones locales a un script, primero, cree el script. Vaya a la ficha Home y seleccione New > Script. Para obtener más información sobre la creación de secuencias de comandos, consulte Crear secuencias de comandos. También puede Crear secuencias de comandos en vivo en el editor en directo.

Después de crear la secuencia de comandos, agregue código al script y guárdelo. Por ejemplo, añada este código y guárdelo como un script llamado mystats.m. Este código declara una matriz, determina la longitud de la matriz y pasa ambos valores a las funciones locales mymean y mymedian. Las funciones locales mymean y mymedian calculan el promedio y la mediana de la lista de entrada y devuelven los resultados.

Nota

Incluir funciones en secuencias de comandos requiere MATLAB R2016b o posterior.

x = 1:10; n = length(x); avg = mymean(x,n); med = mymedian(x,n);  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

Puede agregar funciones locales en cualquier orden, siempre y cuando todas aparezcan después del resto del código de secuencia de comandos. Cada función comienza con su propia sentencia de definición de función y termina con la palabra clave end. La instrucción de definición es la primera línea ejecutable de cualquier función, por ejemplo, function a = mymean(v,n). Para obtener más información acerca de las instrucciones de definición de funciones, incluida la forma de crearlas, consulte Crear funciones en archivos.

Ayuda de acceso

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 mediante el comando help. Especifique los nombres de la secuencia de comandos y de la función local, separándose con un carácter >:

help mystats>mymean      
 mymean Example of a local function.

Ejecutar código

Para ejecutar una secuencia de comandos, incluidas todas las funciones locales, haga clic en el Run (para secuencias de comandos) o Run All (para secuencias de comandos en vivo) o escriba el nombre de la secuencia de comandos guardada en la ventana de comandos. También puede ejecutar secciones individuales en un script haciendo clic en el botón Run Section.

Las funciones locales del archivo actual tienen prioridad sobre las funciones de otros archivos. Es decir, cuando se llama a 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. Esto le permite crear una versión alternativa de una función en particular mientras conserva el original en otro archivo.

Las secuencias de comandos crean y acceden a variables en el espacio de trabajo base. Las funciones locales, similares a otras funciones, tienen sus propias áreas de trabajo separadas del espacio de trabajo base. Las funciones locales no pueden tener acceso a variables en el espacio de trabajo de otras funciones o en el área de trabajo base, a menos que las pase como argumentos. Para obtener más información, vea Espacios de trabajo base y función.

Agregar y ejecutar secciones en secuencias de comandos en directo

El editor en directo no admite la ejecución de secciones individuales dentro de las funciones locales. Por esta razón, no se pueden agregar saltos de sección dentro de las funciones locales en secuencias de comandos activas. Cuando se agregan funciones locales a un script en directo, 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 después de él. Sin embargo, puede ejecutar secciones individuales dentro del código de secuencias de comandos, aunque contengan una llamada a una de las funciones locales del archivo. Para obtener más información sobre los saltos de sección y ejecutar secuencias de comandos en directo, consulte Ejecutar secciones en secuencias de comandos en directo.

Temas relacionados