Quando si distribuisce il codice sorgente , come MATLAB di analisi di routine , prevedere tutti i possibili scenari di utilizzo per garantire un'applicazione robusta . Codice robusto controlla sempre l'input dell'utente per assicurarsi che funzioni correttamente con il codice . MATLAB implementa un oggetto " inputParser " che accelera forte controllo di input obbligatori e facoltativi per le funzioni personalizzate . Implementazione di ingresso Parsing
Per essere compatibile con lo " inputParser , " la funzione MATLAB include ingressi di tre diversi tipi: obbligatori , facoltativi e parametri . La tua dichiarazione di funzione deve essere formattato per includere input necessari per nome , seguito da una singola variabile per contenere gli ingressi e parametri opzionali . Questa variabile è spesso chiamato " varargin , " o un termine simile , che sta per " argomenti variabili in" In MATLAB , " varargin " è un array di celle di argomenti opzionali inviati alla funzione .
< P > Per esempio, in " myfunction.m " : [ output1 , output2 ] = myFunction funzione ( req_input1 , req_input2 , varargin ) parser = inputParser ; ... Parser.parse ( req_input1 , req_input2 , varargin { : } ) ; % la tua personalizzato codeend
Controllo per input richiesti
input richiesti devono avere un valore specificato mentre gli ingressi opzionali possono essere impostati su un valore di default . Aggiungi input necessari al tuo inputParser utilizzando il " addRequired ( ) " metodo della classe inputParser insieme a verifica per i valori validi . Ingressi obbligatori e facoltativi devono essere aggiunti nell'ordine in cui appaiono nella chiamata di funzione
Per esempio : . Parser.addRequired ( ' req_input1 ' , @ IsChar ) ; input% 1 deve essere un stringvalidInputs = { 'mela' ' orange ' ' uva ' ' ananas ' }; parser.addRequired ( ' req_input2 ' , @ ( x ) qualsiasi ( strcmp ( x , validInputs ))) ;
Aggiungi ingressi opzionali utilizzando il " addOptional ( ) " metodo. Aggiungere i valori di default come argomento supplementare. Per esempio :
parser.addOptional ( ' opt_input1 ' , 35 , @ IsNumeric ) ;
Parametri
differenza ingressi obbligatori e facoltativi , i parametri sono accoppiati da un nome e valore del parametro nella chiamata di funzione . Ad esempio , il codice per elaborare l'immagine può contenere parametri per la larghezza e l'altezza , inclusi nella chiamata di funzione come :
myImageFunction ( ... , 'height' , 256 , 'width' , 128) ; < br >
L'ordine dei parametri non è importante , ma deve essere aggiunto dopo che tutti gli input obbligatori e facoltativi . I parametri vengono aggiunti al inputParser utilizzando il metodo " ) addParamValue ( "
parser.addParamValue ( ' ParamName ' , default_value , validator_code ) .
Convalida valori di ingresso < br >
Oltre ai validatori semplici come " @ IsChar " e " @ IsNumeric , " validatori complessi verificare appropriati intervalli di input o altri attributi .
myValidator = @ ( x ) IsNumeric ( x ) && @ ( x ) isa ( x , 'doppio ') && ( x > 100