Matlab 输入解析器和函数句柄

Matlab 输入解析器和函数句柄,matlab,parsing,handle,Matlab,Parsing,Handle,我正在使用Matlab输入解析器,希望使用以下代码解析函数句柄: p = inputParser; p.addOptional('progresscallback', 0, @(x) isa(x,'function_handle') ); p.parse(varargin{:}); 这对于给定的函数句柄很有效,但对于没有句柄的函数句柄则失败 参数“progresscallback”验证失败@(x)isa(x,'function_handle') 现在我想知道如何构造测试函数或默认值以使其工作。

我正在使用Matlab输入解析器,希望使用以下代码解析函数句柄:

p = inputParser;
p.addOptional('progresscallback', 0, @(x) isa(x,'function_handle') );
p.parse(varargin{:});
这对于给定的函数句柄很有效,但对于没有句柄的函数句柄则失败

参数“progresscallback”验证失败@(x)isa(x,'function_handle')


现在我想知道如何构造测试函数或默认值以使其工作。

如果您只想接受空输入或函数句柄输入,您可以如下修改测试函数:

@(x) isempty(x) || isa(x,'function_handle')
如果前一半测试已经为真,则短路或(
|
)将不会评估测试的后一半。顺便说一句,您可能还希望将默认值设置为
[]