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 に答える