Når du distribuerer kildekoden , slik som MATLAB analyse rutiner , forutse alle mulige sammenhenger for å sikre en robust program. Robust kode sjekker alltid brukerundersøkelser for å sikre at det fungerer med din kode . MATLAB implementerer en " inputParser " objekt som påskynder sterk kontroll av obligatoriske og valgfrie innganger til dine egendefinerte funksjoner . Implementering Input analysering
å være compatibile med " inputParser , " din MATLAB funksjon omfatter tilførsler av tre forskjellige typer: nødvendige , valgfrie og parametere. Din funksjon erklæring må være formatert til å omfatte nødvendige innganger etter navn , etterfulgt av en enkelt variabel for å inneholde alternative innganger og parametere . Denne variabelen kalles ofte " varargin ", eller et lignende begrep , som står for " variable argumenter i. " i Matlab , " varargin " er en celle rekke valgfrie argumenter som sendes til funksjonen.
< P > For eksempel i " myFunction.m ": [ utgang1 , utgang2 ] = funksjon myFunction ( req_input1 , req_input2 , varargin ) parser = inputParser ; ... parser.parse ( req_input1 , req_input2 , varargin {: } ) ; % din custom codeend
Kontroll for Nødvendige innganger
Nødvendige innganger må ha en bestemt verdi, mens alternative innganger kan settes til en standard verdi . Legg nødvendige innganger til din inputParser bruke " addRequired ( ) "-metoden av inputParser klassen sammen med kontroll for gyldige verdier. Obligatoriske og valgfrie innganger må legges i den rekkefølgen de vises i funksjonen call of
For eksempel: . Parser.addRequired (' req_input1 ' , @ ischar ) ; % inngang 1 må være en stringvalidInputs = {' eple ' ' oransje ' ' druer ' ' ananas '} ; parser.addRequired (' req_input2 ' , @ ( x ) enhver ( strcmp ( x , validInputs ) ));
Legg alternative innganger ved hjelp av " addOptional ( ) "metoden. Legg standardverdier som en ekstra argument . For eksempel : en
parser.addOptional (' opt_input1 ' , 35 , @ IsNumeric ) ;
parametere
motsetning obligatoriske og valgfrie innganger er parametrene sammenkoblet av en parameter navn og verdi i funksjon samtale . For eksempel kan kode for å behandle et bilde inneholde parametere for bredde og høyde , som inngår i funksjonen samtalen som : en
myImageFunction ( ... , 'height ' , 256 , 'bredde ' , 128 ) ;
rekkefølgen av parametrene ikke spiller ingen rolle , men de må legges etter at alle obligatoriske og valgfrie innganger . Parametere er lagt til inputParser bruke " addParamValue ( ) "-metoden
parser.addParamValue (' ParamName ' , default_value , validator_code ) ; .
Validating Input Verdier
i tillegg til enkle validators som " @ ischar " og " @ IsNumeric , " komplekse validators verifisere egnede områder av innganger eller andre attributter .
myValidator = @ ( x ) IsNumeric ( x ) && @ ( x ) isa ( x , "double" ) && ( x> 100