带有inputparser的matlab条件要求

时间:2018-03-10 18:00:56

标签: matlab function input

如果其他参数不满足某些条件,我想在inputParser中创建一个参数。我现在可以这样做的一种方法是编写一个子分析器来检查输入并处理它。例如:

function foo = subparser(bar, varargin)
p = inputParser; %initialize master parser
addRequired(p, 'bar', @(x) isscalar(x))
addParameter(p, 'conditional', 1, @(x) isscalar(x) || (iscell(x) && ~isempty(x)) 
addParameter(p, 'requireMe', [], @(x) isscalar(x))
parse(p,bar,varargin{:})

if isempty(p.Results.requireMe) % conditional requirement not supplied
    if iscell(p.Results.conditional) % we can get a default from the parameters supplied
        p.Results.requireMe = size(p.Results.conditional{1}, 1)
    else % argument is required
        error("'requireMe' is required when using default or scalar 'conditional'")
    end
end
foo = p.Results
end

是否有更优雅的方式来处理这个问题,或许使用inputParser的内置功能?

0 个答案:

没有答案