MATLAB di analisi di input

January 25

MATLAB di analisi di input


Quando si distribuisce il codice sorgente, come ad esempio le routine di analisi MATLAB, 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 richiesti e opzionali per le funzioni personalizzate.

Implementazione di analisi di input

Per essere compatibile con "inputParser," la funzione MATLAB include ingressi di tre diversi tipi: obbligatori, opzionali e parametri. La vostra dichiarazione della funzione deve essere formattata per includere input richiesti 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.

Ad esempio, in "myfunction.m":
[Output1, output2] = function myFunction (req_input1, req_input2, varargin)
parser = inputParser;
...
parser.parse (req_input1, req_input2, varargin {:});
% Il codice personalizzato
fine

Controllo Per input richiesti

input necessari bisogno di avere un valore specificato mentre ingressi opzionali possono essere impostati su un valore di default. Aggiungere ingressi necessari al vostro inputParser con il metodo "addRequired ()" della classe inputParser insieme con il controllo di valori validi. Necessari e ingressi opzionali devono essere aggiunti nell'ordine in cui appaiono nella chiamata di funzione.

Per esempio:
parser.addRequired ( 'req_input1', @ IsChar); % Ingresso 1 deve essere una stringa
validInputs = { 'mela' 'arancione' 'uva' 'ananas'};
parser.addRequired ( 'req_input2', @ (x) qualsiasi (strcmp (x, validInputs)));

Aggiungere ingressi opzionali con il metodo "addOptional ()". Aggiungere i valori di default come un argomento in più. Per esempio:

parser.addOptional ( 'opt_input1', 35, @ IsNumeric);

parametri

A differenza di input richiesti e opzionali, i parametri sono accoppiati da un nome del parametro e il valore nella chiamata di funzione. Ad esempio, il codice per elaborare un'immagine potrebbe contenere parametri per la larghezza e l'altezza, incluso nella chiamata di funzione come:

myImageFunction (..., 'altezza', 256, 'width', 128);

L'ordine dei parametri non ha importanza, ma devono essere aggiunto dopo tutti gli ingressi obbligatori e facoltativi. I parametri vengono aggiunti al inputParser utilizzando il metodo "addParamValue ()".

parser.addParamValue ( 'ParamName', DEFAULT_VALUE, validator_code);

Convalida Valori di input

Oltre a semplici validatori, come "@ischar" e "@isnumeric," validatori complessi verificare gamme appropriate di ingressi o altri attributi.

MyValidator = @ (x) IsNumeric (x) && @ (x) isa (x, 'doppio') && (x> 100 || X <-100);

La variabile MyValidator fornisce un mezzo per controllare che tipo di variabile viene passata, tra cui numerico, formattato come un doppio, e sia superiore a 100 o inferiore a -100.