2009-11-08 253 views

Respuesta

17

This page dice,

Scripts comparadas con las funciones

scripts son m-archivos que contienen MATLAB declaraciones. Las `` funciones '' de MATLAB son otro tipo de m-file. La mayor diferencia entre las secuencias de comandos y las funciones es que las funciones tienen entrada y parámetros de salida. Los archivos de comandos solo pueden operar en las variables que están codificadas en su archivo m. Como puede ver, funciones mucho más flexible. Por lo tanto, son más adecuados para tareas generales que se aplicarán a diferentes datos .

Los scripts son útiles para las tareas que no cambian. También son un modo para documentar una secuencia específica de acciones , por ejemplo, una llamada a función con valores de parámetro especiales , que pueden ser difíciles de recordar.

Hay más diferencias sutiles entre scripts y funciones . Una secuencia de comandos se puede considerar como una macro de teclado: cuando escribe el nombre de la secuencia de comandos, todos los comandos que contiene se ejecutan como si hubiera escrito estos comandos en la ventana de comandos. Por lo tanto, todas las variables creadas en el script se agregan al espacio de trabajo para la sesión actual. Además, si cualquiera de las variables del archivo de script tiene el mismo nombre que en su espacio de trabajo actual, los valores de esas variables en el espacio de trabajo son modificadas por las acciones en el script. Esto se puede utilizar para su ventaja. Es también puede causar efectos secundarios no deseados.

Por el contrario, las variables de función son locales para la función. (La excepción es que es posible declarar y utilizar variables globales, pero que requiere y acción explícita por parte del usuario .) El ámbito local de la función variables que se da una mayor seguridad y flexibilidad . La única forma (además de explícitamente variables globales declaradas) para obtener información dentro y fuera de una función es a través de las variables en las listas de parámetros.

Ejemplo

Una de las principales diferencias entre una secuencia de comandos y una función es el acceso a las variables en el espacio de trabajo. Por ejemplo, supongamos en el espacio de trabajo que ha definido dos variables a = 10 y b = 20. Estas variables se definen en la línea de comando del indicador principal.

archivo de secuencias de comandos - display_mult.m

disp(a*b);

Typing display_mult mostraría el producto de a y b en el espacio de trabajo, es decir 10*20 o 200.

Pero si ha definido una función, llamada display_mult define en un archivo con el mismo nombre: archivo

Función - display_mult.m

function display_mult(a,b) 
    disp(a*b); 
end 

Usted tendría que incluir los dos variables como argumentos a la llamada de función. Por lo tanto, display_mult sería no funciona esta vez ya que a y b no existe en el espacio de trabajo de la función. Debería incluirlos ejecutando display_mult(a,b) que mostrará el resultado deseado.

explicación simple

Cada declaración en un script es lo mismo que escribir a cabo en la ventana de comandos de MATLAB. ¡Solo las estás almacenando antes en un archivo!

Una función, por otro lado, admite argumentos y es un espacio de trabajo "nuevo", separado del espacio de trabajo principal.

Nota: El end al final de una llamada de función es opcional pero me gusta agregarlo para organizar las cosas. Por supuesto, si tiene varias definiciones de función en un archivo, todas tendrán que terminar con end. Además, no puede tener un script y una definición de función en el mismo archivo.

+0

ejemplo? ¿me puede dar algún ejemplo? – izzat

+0

Agregó un ejemplo y expandió la solución – Jacob

Cuestiones relacionadas