此示例说明如何定义必需和可选的输入、如何指定可选输入的默认值以及如何使用输入解析器验证自定义函数的所有输入。
输入解析器提供一致的方式来验证输入和指定输入的默认值,改进您的代码的稳定性和可维护性。要验证输入,您可以利用现有的 MATLAB®函数或编写您自己的验证例程。
步骤 1.定义您的函数。
在名为printPhoto.m的文件中创建函数。printPhoto函数具有文件名必需的一个输入,以及抛光(有光泽或无光泽)、颜色空间(RGB 或CMYK)、宽度和高度的可选输入。
function printPhoto(filename,varargin)
在您的函数声明语句中,先指定必需的输入。使用varargin支持可选输入。
步骤 2.创建一个 InputParser 对象。
在您的函数内,调用inputParser以创建解析器对象。
p = inputParser;
步骤 3.将输入添加到方案中。
使用addRequired、addOptional或addParameter将输入添加到您的函数中的解析方案中。为可选输入指定默认值。
对于每个输入,您可以指定验证函数的句柄,用于检查输入并返回标量逻辑值(true或false)或错误。验证函数可以是现有的 MATLAB 函数(例如ischar或isnumeric)或您创建的函数(例如匿名函数或局部函数)。
在printPhoto函数中,filename是必需的输入。将finish和color定义为可选输入,将width和height定义为可选的参数值对组。
defaultFinish ='glossy'; validFinishes = {'glossy','matte'}; checkFinish = @(x) any(validatestring(x,validFinishes)); defaultColor ='RGB'; validColors = {'RGB','CMYK'}; checkColor = @(x) any(validatestring(x,validColors)); defaultWidth = 6; defaultHeight = 4; addRequired(p,'filename',@ischar); addO