När du distribuerar källkoden , såsom MATLAB analys rutiner , förutse alla tänkbara scenarier för att säkerställa en robust applikation . Robust kod kontrollerar alltid användarens input för att säkerställa att den fungerar med din kod . MATLAB genomför en " inputParser " objekt som påskyndar en stark kontroll av obligatoriska och valfria ingångarna till dina egna funktioner . Implementera Input Parsing
Att vara compatibile med " inputParser , " din MATLAB funktion innefattar ingångar för tre olika typer: obligatoriska , valfria och parametrar . Din funktion deklaration måste formateras för att inkludera nödvändiga ingångar med namn , följt av en enda variabel att innehålla valfria ingångar och parametrar . Denna variabel kallas ofta " varargin , " eller en liknande term , som står för " variabla argument i." i Matlab , " varargin " är en cell array av valfria argument som skickas till funktionen .
Till exempel i " myFunction.m ": [ UTDATA 1 , UTDATA 2 ] = function myFunction ( req_input1 , req_input2 , varargin ) parser = inputParser ; ... parser.parse ( req_input1 , req_input2 , varargin {: }); % din anpassade codeend Addera Kontroll för ingångar som krävs
ingångar som krävs måste ha ett visst värde medan valfria ingångar kan ställas in på ett standardvärde . Lägg nödvändiga ingångar till din inputParser med " addRequired ( ) " metoden av inputParser klassen tillsammans med kontroll för giltiga värden . Obligatoriska och valfria ingångar måste tillsättas i den ordning de visas i funktionen call of
Till exempel : . Parser.addRequired ( ' req_input1 ' , @ ischar ) , % ingång 1 måste vara ett stringvalidInputs = { ' apple ' ' orange' ' druvor ' " ananas " }; parser.addRequired ( ' req_input2 ' , @ ( x ) någon ( strcmp ( x , validInputs ) ) ) ;
Lägg valfria ingångar med hjälp av " addOptional ( ) "-metoden. Lägg standardvärden som ett extra argument . Till exempel :
parser.addOptional ( ' opt_input1 ' , 35 , @ IsNumeric ) ,
Parametrar
skillnad obligatoriska och valfria ingångar är parametrar som paras med en parameter namn och värde i funktionsanropet . Till exempel kan koden för att bearbeta en bild innehåller parametrarna för bredd och höjd , som ingår i funktionsanropet som :
myImageFunction ( ... , "höjd" , 256 , "bredd" , 128 ) ;
ordning parametrar spelar ingen roll , men de måste läggas till efter alla obligatoriska och valfria ingångar . Parametrar läggs till inputParser använda " addParamValue ()" metod
parser.addParamValue ( ' ParamName ' , default_value , validator_code ),.
Validering indatavärden
Förutom enkla mekanismerna såsom " @ ischar " och " @ IsNumeric , " komplexa mekanismerna verifiera lämpliga typer av ingångar eller andra attribut .
myValidator = @ ( x ) IsNumeric ( x ) && @ ( x ) isa ( x , ' dubbel ' ) && ( x > 100