1

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

p = inputParser;
p.addOptional('progresscallback', 0, @(x) isa(x,'function_handle') );
p.parse(varargin{:});

这适用于给定的函数句柄,但对于没有句柄的

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

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

4

1 回答 1

0

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

@(x) isempty(x) || isa(x,'function_handle')

如果第一个已经为真,短路 OR ( ||) 将不会评估测试的后半部分。顺便说一句,您可能还想将默认值设置为[].

于 2013-02-07T13:09:47.593 回答