Matlab - Überprüfen Sie, ob der Funktionszeiger eine bestimmte Funktion oder einen bestimmten Funktionstyp ist

8

Frage: Wie kann ich in Matlab prüfen, ob ein Funktions-Handle eine bestimmte Funktion oder ein bestimmter Funktionstyp ist?

Beispiel: Lassen Sie f1 eine Funktionskennung sein. Wie überprüfe ich, ob f1 die eingebaute Matlab-Funktion mean ist? Wie überprüfe ich, ob f1 eine anonyme Funktion ist?

Meine aktuelle Lösung: Meine aktuelle Lösung für dieses Problem beinhaltet einen Aufruf der Funktion functions . functions akzeptiert ein Funktions-Handle als Eingabe und gibt eine Struktur zurück, die Informationen über das Eingabefunktions-Handle enthält, z. B. Funktionstyp, Pfad, Funktionsname usw. Es funktioniert, ist aber keine ideale Lösung, da offizielle Dokumentation :

"Achtung MATLAB® stellt die Funktion functions nur für Abfrage- und Debugging-Zwecke zur Verfügung. Da sich das Verhalten in nachfolgenden Releases ändern kann, sollten Sie sich für Programmierzwecke nicht darauf verlassen."

    
Colin T Bowers 12.08.2013, 09:30
quelle

1 Antwort

11

Wie wäre es mit func2str?

Wenn dies eine integrierte Funktion ist, sollte nur eine Zeichenfolge zurückgegeben werden, die den Funktionsnamen enthält. Wenn es sich um eine anonyme Funktion handelt, sollte sie die anonyme Funktion (einschließlich @) zurückgeben.

%Vor%

Sie können auch isequal verwenden, um zwei Funktions-Handles zu vergleichen (ETA: dies funktioniert nicht, um zwei anonyme Funktionen zu vergleichen, es sei denn, eines wurde als Kopie des anderen erstellt):

%Vor%     
nkjt 12.08.2013, 09:51
quelle

Tags und Links