Gibt es einen integrierten Test, ob eine Zeichenfolge (oder ein Handle) auf ein Skript verweist?

8

Die folgende Funktion ist ein selbst erstellter Hack, um festzustellen, ob sich das Argument auf ein Skript bezieht oder nicht

%Vor%

Solche Hacks sind schwer zu pflegen. (Dieser bricht beispielsweise ab, wenn MathWorks beschließt, die Klasse der Ausnahmekennung zu ändern, die nargin auslöst, wenn ein Skript als Eingabe abgerufen wird.)

Hat MATLAB dafür bereits eine eingebaute Funktion?

    
kjo 30.01.2016, 00:07
quelle

2 Antworten

6

Sie könnten Ihren Hack so modifizieren, dass er weniger anfällig für zukünftiges "Brechen" ist, indem Sie den try-catch -Block nur für Funktions-Handles ausführen. In diesem Fall würden Sie wissen, dass wenn ein Fehler ausgelöst wird, dann ist das Eingabehandle ein Skript (es müssen keine Fehlerdetails untersucht werden; daher keine Empfindlichkeit für Ausnahme-IDs).

%Vor%     
dfri 30.01.2016, 01:00
quelle
1

Loren von MathWorks hat einen Blogartikel < Genau zu dieser Frage aus dem Jahr 2013.

Sie verwendet die gleiche Methode wie Sie in Ihrer Frage - und für was es wert ist, ist die Nachrichtenkennung die gleiche und hat sich in mindestens drei Jahren nicht geändert (in der Tat ist es viel länger als das), also ich denke, du kannst aufhören, dich um deine Lösung zu sorgen.

Nützlicherweise fügt Loren auch eine zusätzliche Funktion hinzu, um Klassendateien sowie Funktionen und Skripte zu unterscheiden.

    
Sam Roberts 31.01.2016 00:49
quelle

Tags und Links