簡體   English   中英

輸入解析器和函數句柄

[英]input parser and 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')

如果第一個已經正確,則短路OR( || )將不會評估測試的第二個一半。 順便說一句,您可能還需要將默認值設置為[]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM