我正在使用Matlab输入解析器,并希望使用以下代码解析函数句柄:
p = inputParser;
p.addOptional('progresscallback', 0, @(x) isa(x,'function_handle') );
p.parse(varargin{:});
这对于给定的函数句柄很有效,但对于
没有句柄则失败争论' progresscallback'验证失败@(x)isa(x,' function_handle')。
现在我想知道如何构建测试功能或默认值以使其工作。
答案 0 :(得分:0)
如果您只想接受空句柄或函数句柄输入,可以像这样修改测试函数:
@(x) isempty(x) || isa(x,'function_handle')
如果第一个测试已经为真,则短路OR(||
)将不会评估测试的后半部分。顺便说一句,您可能还想将默认值设置为[]
。