[英]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.