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.

Crear identificador de función

Puede crear identificadores de función para funciones con nombre y anónimas. Puede almacenar varios identificadores de función en una matriz y guardarlos y cargarlos, como haría con cualquier otra variable.

¿Qué es un identificador de función?

Un identificador de función es un tipo de datos que almacena una asociación a una función.MATLAB® Llamar indirectamente a una función le permite invocar la función independientemente de dónde se llame. Los usos típicos de los identificadores de función incluyen:

  • Pasar una función a otra función (a menudo llamada).function functions Por ejemplo, pasar una función a funciones de integración y optimización, como y.integralfzero

  • Especificar funciones de devolución de llamada. Por ejemplo, una devolución de llamada que responde a un evento de interfaz de usuario o interactúa con hardware de adquisición de datos.

  • Construya identificadores a funciones definidas en línea en lugar de almacenarse en un archivo de programa (funciones anónimas).

  • Llame a funciones locales desde fuera de la función principal.

Puede ver si una variable, es un identificador de función mediante.hisa(h,'function_handle')

Creación de identificadores de función

Para crear un identificador para una función, preceda el nombre de la función con un signo.@ Por ejemplo, si tiene una función llamada, cree un identificador con el nombre siguiente:myfunctionf

f = @myfunction;

Se llama a una función mediante un identificador de la misma manera que se llama a la función directamente. Por ejemplo, supongamos que tiene una función nombrada, definida como:computeSquare

function y = computeSquare(x) y = x.^2; end

Cree un identificador y llame a la función para calcular el cuadrado de cuatro.

f = @computeSquare; a = 4; b = f(a)
b =      16

Si la función no requiere ninguna de las entradas, puede llamar a la función con paréntesis vacíos, como

h = @ones; a = h() 
a =      1

Sin los paréntesis, la asignación crea otro identificador de función.

a = h
a =       @ones

Los identificadores de función son variables que se pueden pasar a otras funciones. Por ejemplo, calcule la integral de x2 en el rango [0,1].

q = integral(f,0,1);

Los identificadores de función almacenan su ruta de acceso absoluta, por lo que cuando tiene un identificador válido, puede invocar la función desde cualquier ubicación. No tiene que especificar la ruta de acceso a la función al crear el identificador, solo el nombre de la función.

Tenga en cuenta lo siguiente al crear asas para funciones:

  • Longitud de nombre: cada parte del nombre de la función (incluidos los nombres de clase y paquete) debe ser menor que el número especificado por.namelengthmax De lo contrario, trunca la última parte del nombre.MATLAB

  • Ámbito: la función debe estar en el ámbito en el momento de crear el identificador. Por lo tanto, la función debe estar en la ruta de acceso o en la carpeta actual.MATLAB O, para los identificadores de funciones locales o anidadas, la función debe estar en el archivo actual.

  • Precedencia: cuando hay varias funciones con el mismo nombre, utiliza las mismas reglas de precedencia para definir los identificadores de función que para llamar a funciones.MATLAB Para obtener más información, consulte.Orden de precedencia de función

  • Sobrecarga: Si la función que especifica sobrecarga una función en una clase que no es una clase fundamental, la función no está asociada con el identificador de función en el momento en que se construye.MATLAB En su lugar, considera los argumentos de entrada y determina qué implementación llamar en el momento de la evaluación.MATLAB

Funciones anónimas

Puede crear identificadores para funciones anónimas. Una función anónima es una función basada en expresiones de una línea que no requiere un archivo de programa.MATLAB Construya un identificador para una función anónima definiendo el cuerpo de la función, y una lista separada por comas de argumentos de entrada a la función anónima,.anonymous_functionarglist La sintaxis es:

h = @(arglist)anonymous_function

Por ejemplo, cree un identificador, a una función anónima que calcule el cuadrado de un número y llame a la función anónima mediante su identificador.sqr

sqr = @(n) n.^2; x = sqr(3)
x =       9

Para obtener más información, consulte.Funciones anónimas

Matrices de identificadores de función

Puede crear una matriz de identificadores de función recopilándolos en una matriz de celda o estructura. Por ejemplo, utilice una matriz de celdas:

C = {@sin, @cos, @tan}; C{2}(pi)
ans =      -1

O utilice una matriz de estructura:

S.a = @sin;  S.b = @cos;  S.c = @tan; S.a(pi/2) 
ans =       1

Guardar y cargar identificadores de función

Puede guardar y cargar los identificadores de función, como haría con cualquier otra variable.MATLAB En otras palabras, utilice las funciones y.saveload Si guarda un identificador de función, no guarda la información de la ruta de acceso.MATLAB Si carga un identificador de función y el archivo de función ya no existe en la ruta de acceso, el identificador no es válido. Un identificador no válido se produce si la ubicación del archivo o el nombre de archivo ha cambiado desde que creó el identificador. Si un identificador no es válido, puede mostrar una advertencia al cargar el archivo.MATLAB Cuando se invoca un identificador no válido, emite un error.MATLAB

Consulte también

| | |

Ejemplos relacionados

Más acerca de