Al implementar código fuente, como rutinas de análisis de MATLAB , anticipar todos los escenarios de uso posibles para garantizar una aplicación robusta . Código robusta siempre comprueba la entrada del usuario para asegurarse de que funciona correctamente con el código. MATLAB implementa un objeto " inputParser " que acelera fuerte control de los insumos necesarios y opcionales para las funciones personalizadas . Implementación de entrada de análisis
Para ser compatibile con " inputParser , " su función MATLAB incluye entradas de tres tipos: obligatorios , opcionales y parámetros. Su declaración de la función debe estar formateado para incluir los insumos requeridos por nombre , seguido de una sola variable para contener las entradas y los parámetros opcionales . Esta variable se llama a menudo " varargin , " o un término similar , de pie para "argumentos variables in " en Matlab , " varargin " es un conjunto de células de argumentos opcionales enviados a la función.
< P > Por ejemplo, en " myFunction.m ": [ salida 1 , salida 2 ] = function myFunction ( req_input1 , req_input2 , varargin ) parser = inputParser ; ... parser.parse ( req_input1 , req_input2 , varargin {:} ) ; % su costumbre codeend
Comprobación de los insumos necesarios
insumos requeridos necesitan tener un valor determinado, mientras que las entradas opcionales se pueden ajustar a un valor predeterminado. Añadir insumos necesarios para su inputParser utilizando el método " addRequired ()" de la clase inputParser junto con la comprobación de valores válidos. Insumos necesarios y opcionales se deben añadir en el orden en que aparecen en la llamada de función
Por ejemplo : . Parser.addRequired ( ' req_input1 ', @ ischar ) ; % de entrada 1 debe ser un stringvalidInputs = {' apple' ' anaranjada ' ' uva ' ' piña '} ; parser.addRequired ( ' req_input2 ', @ (x ) cualquier ( strcmp (x, validInputs ))) ;
Agregar entradas opcionales utilizando el " addOptional () " método . Agregar valores por defecto como un argumento extra . Por ejemplo :
parser.addOptional ( ' opt_input1 ', 35 , @ isnumeric ) ;
Parámetros
A diferencia de los insumos necesarios y opcionales , los parámetros están vinculados por un nombre de parámetro y el valor de la llamada a la función . Por ejemplo , el código para procesar una imagen puede contener parámetros de anchura y altura , incluidas en la llamada a la función como:
myImageFunction (..., 'height' , 256, ' width' , 128 ) ; < br >
El orden de los parámetros no importa, sino que debe ser añadido después de todos los insumos necesarios y opcionales . Los parámetros se agregan a la inputParser utilizando el método ") addParamValue ( "
parser.addParamValue ( ' ParamName ' , default_value , validator_code ) .
Validación de los valores de entrada < br >
Además de validadores simples como " @ ischar " y " @ isnumeric , " validadores complejos verificar rangos adecuados de insumos u otros atributos .
miValidador = @ (x ) isnumeric (x ) @ && (x ) ( x, 'double ' ) && isa ( x > 100