English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Una función es un conjunto de instrucciones que se ejecutan juntas. En MATLAB, las funciones se definen en archivos separados. El nombre del archivo debe coincidir con el nombre de la función.
La función realiza operaciones con variables en su propio espacio de trabajo (también conocido como espacio de trabajo local), que es diferente del espacio de trabajo al que se accede desde el símbolo del sistema de MATLAB (conocido como espacio de trabajo básico).
函数可以接受多个输入参数,并且可以返回多个输出参数。
Las funciones pueden aceptar múltiples parámetros de entrada y pueden devolver múltiples parámetros de salida.-
La sintaxis de la declaración de la función es1function [out2, out1, ..., outN] = myfun(in2, ..., outN] = myfun(in3, in
Los siguientes son ejemplos en líneamymaxLa función debe escribirse en un archivo llamadomymax.mEl archivo. Se toma como parámetro cinco números y devuelve el número más grande.
Cree un archivo de función llamado mymax.m e ingrese el siguiente código en él.-
function max = mymax(n1, n2, n3, n4, n5) %Esta función se utiliza para calcular %Entrada de cinco números max = n1; if(n2 > max) max = n2; end if(n3 > max) max = n3; end if(n4 > max) max = n4; end if(n5 > max) max = n5; end
La primera línea de la función comienza con la palabra clave La declaración de la función comienza con . Esto proporciona el nombre de la función y el orden de los parámetros. En nuestro ejemplo,mymaxLa función tiene cinco parámetros de entrada y un parámetro de salida.
Las líneas de comentarios después de la declaración de la función proporcionan texto de ayuda. Cuando ingrese lo siguiente, se imprimirán estas líneas:
help mymax
MATLAB ejecutará las siguientes instrucciones y devolverá el siguiente resultado-
Esta función calcula el máximo de los cinco números dados como entrada
Puede llamar a la función como-
mymax(34, 78, 89, 23, 11)
MATLAB ejecutará las siguientes instrucciones y devolverá el siguiente resultado-
ans = 89
Las funciones anónimas son similares a las funciones inline en los lenguajes de programación tradicionales, que se definen en una sola declaración de MATLAB. Están compuestas por una expresión de MATLAB y una cantidad ilimitada de parámetros de entrada y salida.
Puede definir funciones anónimas directamente en la línea de comandos de MATLAB o en una función o script.
De esta manera, puede crear funciones simples sin tener que crear un archivo para ellas.
La sintaxis para crear una función anónima a partir de una expresión es
f = @(arglist)expression
En este ejemplo, escribiremos una función anónima llamada power que tomará dos números como entrada y elevará el primer número a la potencia del segundo número.
Cree un archivo de script y escriba el siguiente código dentro de él-
power = @(x, n) x.^n; result1 =7, 3) result2 =49, 0.5) result3 =10, -10) result4 =4.5, 1.5)
Al ejecutar el archivo, muestra-
result1 = 343 result2 = 7 result3 = 1.0000e-10 result4 = 9.5459
Debe definir cualquier función excepto la función anónima en el archivo. Cada archivo de función contiene una función principal obligatoria que aparece primero, seguida de cualquier número ilimitado de funciones subyacentes opcionales que se utilizan después de la función principal.
Se puede llamar a la función principal desde fuera del archivo del archivo principal (desde la línea de comandos u otra función), pero no se puede llamar a la función subyacente desde fuera del archivo del archivo del archivo de función desde la línea de comandos u otra función.
子函数仅对主函数和定义它们的函数文件中的其他子函数可见。
让我们写一个名为quadratic的函数来计算一个二次方程的根。该函数包含三个输入:二次系数、线性系数和常数项。它将回归根。
函数文件quadratic.m将包含主函数quadratic和子函数disc,后者计算判别式。
创建一个函数文件 quadratic.m 并在其中输入以下代码
function [x1,x}}2] = quadratic(a,b,c) %此函数返回 %二次方程。 %它需要3parámetros de entrada %x2,x和 %常数项 %它返回根 d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % end of quadratic function dis = disc(a,b,c) %函数计算判别式 dis = sqrt(b^2 - 4*a*c); end % end of sub-function
您可以从命令提示符处调用上述功能,如下所示:
quadratic(2,4,-4)
MATLAB ejecutará las siguientes instrucciones y devolverá el siguiente resultado-
ans = 0.7321
您可以在另一个函数的主体内定义函数。这些称为嵌套函数。嵌套函数包含任何其他函数的任何或所有组件。
嵌套函数在另一个函数的范围内定义,它们共享对包含函数的工作区的访问。
嵌套函数遵循以下语法-
function x = A(p1, p2) ... B(p2) function y = B(p3) ... end ... end
让我们重写前面实例中的cuadrática函数,不过,这次disc函数将是一个嵌套函数。
创建一个函数文件cuadrática2.m,并在其中输入以下代码-
function [x1,x}}2] = cuadrática2(a,b,c) function disc %嵌套函数 d = sqrt(b^2 - 4*a*c); end % 结束函数disc disc; x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end %结束函数 quadratic2
Puede llamar a la función anterior desde la línea de comandos de la siguiente manera:
cuadrática2(2,4,-4)
MATLAB ejecutará las siguientes instrucciones y devolverá el siguiente resultado-
ans = 0.73205
私有函数是仅对有限的一组其他函数可见的主函数。如果不想公开函数function(s)的实现,可以将它们创建为私有函数。
私有函数位于具有特殊名称 Private 的子文件夹中。
它们仅对父文件夹中的函数可见。
让我们重写cuadrática函数。不过,这一次,disc函数计算判别式,将是一个私有函数。
在工作目录文件夹中创建一个名为 private 的子文件夹,在其中存储以下函数文件 disc.m
function dis = disc(a,b,c) %函数计算判别式 dis = sqrt(b^2 - 4*a*c); end %子函数结束
在您的工作目录中创建一个函数 quadratic3.m ,并在其中输入以下代码-
function [x1,x}}2] = cuadrática3(a,b,c) % Esta función devuelve % Una ecuación cuadrática. Necesita3parámetros de entrada % Son los2,x y % Término constante % Devuelve las raíces d = disc(a,b,c); x1 = (-b + d) / (2*a); x2 = (-b - d) / (2*a); end % Finalización de cuadrática3
Puede llamar a la función anterior desde la línea de comandos de la siguiente manera:
cuadrática3(2,4,-4)
MATLAB ejecutará las siguientes instrucciones y devolverá el siguiente resultado-
ans = 0.73205
Las variables globales pueden ser compartidas por múltiples funciones. Para esto, debe declarar la variable como variable global en todas las funciones.
Si desea acceder a la variable desde el espacio de trabajo básico, declare la variable en la línea de comandos.
Las declaraciones globales deben realizarse antes de que la variable se utilice realmente en la función. Es mejor usar mayúsculas para los nombres de las variables globales para distinguirlas de otras variables.
Vamos a crear un archivo de función llamado average.m e ingrese el siguiente código dentro de él-
function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end
Cree un archivo de script y escriba el siguiente código dentro de él-
global TOTAL; TOTAL = 10; n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42 av = average(n)
Al ejecutar el archivo, se mostrará el siguiente resultado-
av = 35.500