Contenu principal

function_handle

Description

Un handle de fonction est un type de données MATLAB® qui représente une fonction. Une utilisation courante des handles de fonction consiste à passer une fonction à une autre fonction. Par exemple, il est possible d’utiliser des handles de fonction comme arguments d’entrée de fonctions qui évaluent des expressions mathématiques sur une plage de valeurs. Les handles de fonction sont également utilisés pour :

  • Spécifier des fonctions de rappel (par exemple, un rappel qui répond à un événement de l’UI ou qui interagit avec du hardware d’acquisition de données).

  • Créer des handles vers des fonctions définies en inline au lieu d’être stockées dans un fichier de programme (fonctions anonymes).

Création

Pour créer un handle de fonction, utilisez l’opérateur @. Les handles de fonction peuvent représenter des fonctions nommées ou anonymes.

  • Les handles de fonction nommée représentent les fonctions de fichiers de programme existants, y compris les fonctions qui font partie de MATLAB et les fonctions que vous créez avec le mot-clé function. Pour créer un handle pour une fonction nommée, insérez l’opérateur @ avant le nom de cette fonction.

    Par exemple, créez un handle vers la fonction sin, puis utilisez fminbnd pour déterminer la valeur de x qui minimise sin(x) dans la plage de 0 à 2 π  :

    f = @sin;
    m = fminbnd(f,0,2*pi);
  • Les handles de fonction anonyme (souvent appelés fonctions anonymes) représentent des expressions exécutables inline (intégrées) uniques qui renvoient une seule sortie. Pour définir une fonction anonyme, placez les noms des arguments en entrée entre parenthèses juste après l’opérateur @, puis spécifiez l’expression exécutable.

    Par exemple, créez un handle vers une fonction anonyme qui évalue l’expression x2y2 :

    f = @(x,y) (x.^2 - y.^2);

    Les fonctions anonymes peuvent accepter plusieurs entrées mais renvoient une seule sortie.

Exemples

réduire tout

Dans un fichier de votre dossier courant, créez une fonction nommée cubicPoly qui accepte une entrée pour évaluer le polynôme cubique x3+x2+x+1.

function y = cubicPoly(x)
y = x.^3 + x.^2 + x + 1; 
end

Pour calculer l’intégrale de cubicPoly de 0 à 1, passez un handle vers la fonction cubicPoly à integral.

q = integral(@cubicPoly,0,1)
q = 
2.0833

Créez le handle f vers une fonction anonyme qui évalue le polynôme cubique x3+x2+x+1 pour une valeur donnée de x.

f = @(x) x.^3 + x.^2 + x + 1;

Pour calculer l’intégrale de la fonction anonyme de 0 à 1, passez son handle à integral.

q = integral(f,0,1)
q = 
2.0833

Capacités étendues

développer tout

Historique des versions

Introduit avant R2006a

développer tout