Wenn Sie Quellcode, wie MATLAB -Analyse -Routinen bereitstellen , erwarten alle möglichen Einsatzszenarien , um eine robuste Anwendung zu gewährleisten. Robust Code prüft immer Benutzereingaben , um sicherzustellen, es funktioniert mit Ihrem Code . MATLAB implementiert eine " inputParser " Objekt, das starke Kontrolle der erforderlichen und optionalen Eingaben zu Ihrer benutzerdefinierten Funktionen beschleunigt . Implementieren Eingang Parsing
Um compatibile mit " inputParser , " Ihre MATLAB-Funktion enthält Eingänge von drei verschiedenen Arten : erforderlich, optional und Parameter . Ihre Funktion Erklärung muss formatiert erforderlichen Eingaben anhand des Namens, durch eine einzelne Variable , um optionale Eingaben und Parameter enthalten sind , gefolgt werden. Diese Variable wird oft als " varargin " oder ein ähnlicher Begriff , steht für "variable Argumente in. " In MATLAB , " varargin " ist eine Zelle Array von optionalen Argumente an die Funktion .
< P > Zum Beispiel in " myFunction.m ": [ output1 , output2 ] = function myFunction ( req_input1 , req_input2 , varargin ) parser = inputParser ; ... parser.parse ( req_input1 , req_input2 , varargin {:} ); % Ihrer individuelle codeend
Überprüfung erforderlich für Eingänge
erforderlichen Eingaben müssen einen bestimmten Wert haben, während optionale Eingänge auf einen Standardwert gesetzt werden kann. In erforderlichen Eingaben , um Ihren inputParser mit dem " addRequired ()" -Methode des inputParser Klasse zusammen mit Überprüfung auf gültige Werte . Erforderliche und optionale Eingänge müssen in der Reihenfolge ihres Auftretens in den Aufruf der Funktion hinzugefügt werden
Zum Beispiel: . Parser.addRequired ( ' req_input1 ', @ ischar ); % Eingang 1 muss ein stringvalidInputs = {' Apfel' sein ' orange' ' Trauben ' Ananas '} ; parser.addRequired ( ' req_input2 ', @ (x) beliebig ( strcmp (x, validInputs ))) ;
Fügen Sie optional Eingänge mit dem " addOptional () " Verfahren . In Standardwerte als zusätzliches Argument . Zum Beispiel:
parser.addOptional ( ' opt_input1 ', 35 , @ isnumeric );
Parameter
Gegensatz erforderliche und optionale Eingänge werden die Parameter durch einen Parameter Name und Wert in der Funktion Anruf gepaart. Zum Beispiel könnte Code , um ein Bild zu verarbeiten enthalten Parameter für Breite und Höhe , in der Funktion als Aufruf enthalten :
myImageFunction (..., 'height' , 256, 'width' , 128) ;
Die Reihenfolge der Parameter spielt keine Rolle , aber sie muss nach allen erforderlichen und optionalen Eingänge hinzugefügt werden. Parameter sind dem inputParser mit dem " addParamValue ()" -Methode hinzugefügt
parser.addParamValue ( ' ParamName ' , default_value , validator_code ); .
Validieren Eingabewerte
Neben einfachen Prüfungen wie " @ ischar " und "@ isnumeric , " komplexe Prüfungen überprüfen geeignete Bereiche von Eingängen oder andere Attribute .
MyValidator = @ (x) isnumeric (x) && @ (x) isa (x, 'double' ) && ( x > 100