Hauptinhalt

function_handle

Function Handles

Beschreibung

Function Handles sind MATLAB®-Datentypen, die eine Funktion repräsentieren. Function Handles dienen typischerweise dazu, eine Funktion auf eine andere Funktion zu übertragen. Beispielweise können Sie Function Handles als Eingabeargumente für Funktionen verwenden, die mathematische Ausdrücke über eine Reihe von Werten bewerten. Weitere übliche Verwendungszwecke von Function Handles umfassen:

  • Callback-Funktionen festlegen (z. B. ein Callback, der auf ein UI-Ereignis reagiert oder mit Datenerfassungs-Hardware interagiert).

  • Handles für inline festgelegte statt in einer Programmdatei gespeicherte Funktionen (anonyme Funktionen) erstellen.

Erstellung

Erstellen Sie mithilfe des Operators @ einen Function Handle. Function Handles können entweder benannte oder anonyme Funktionen sein.

  • Benannte Function Handles stellen Funktionen in bestehenden Programmdateien dar, darunter Funktionen, die Teil von MATLAB sind und Funktionen, die Sie mit dem Schlüsselwort function erstellen. Um einen Handle für eine benannte Funktion zu erstellen, setzen Sie das Zeichen @ vor den Funktionsnamen.

    Erstellen Sie beispielsweise einen Handle für die Funktion sin und verwenden Sie daraufhin fminbnd, um den Wert x zu finden, der sin(x) im Bereich von 0 bis 2 π minimiert:

    f = @sin;
    m = fminbnd(f,0,2*pi);
  • Anonyme Function Handles (auch als anonyme Funktionen) bezeichnet, stellen einzelne ausführbare Inline-Ausdrücke dar, die eine Ausgabe liefern. Um eine anonyme Funktion zu definieren, setzen Sie die Namen der Eingabeargumente unmittelbar nach dem @-Operator in Klammern und geben Sie daraufhin den ausführbaren Ausdruck an.

    Erstellen Sie beispielsweise einen Handle für eine anonyme Funktion, die den Ausdruck x2y2 auswertet:

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

    Anonyme Funktionen können mehrere Eingaben akzeptieren, aber nur eine Ausgabe zurückgeben.

Beispiele

alle reduzieren

Erstellen Sie in einer Datei in ihrem aktuellen Ordner eine Funktion namens cubicPoly, die eine Eingabe akzeptiert und das kubische Polynom x3+x2+x+1 auswertet.

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

Um das Integral von cubicPoly von 0 bis 1 zu finden, übergeben Sie einen Handle für die cubicPoly-Funktion an integral.

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

Erstellen Sie den Handle f für eine anonyme Funktion, die das kubische Polynom x3+x2+x+1 für einen bestimmten Wert x auswertet.

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

Um das Integral der anonymen Funktion von 0 bis 1 zu finden, übergeben Sie deren Handle an integral.

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

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern