matlab输入分析器

matlab输入分析器,matlab,Matlab,我想用inputparser验证输入参数,其中输入参数有2个必需的输入和varargin 我如何验证varargin,其中我的varargin具有可变长度 比如:myfun'sum'、'hallo'、'Name'、'address'、 如果且仅当变量输入参数采用参数-值对的形式时,可以执行以下操作: function result = myfun(varargin) p = inputParser; p.addRequired('input1', @validation1);

我想用inputparser验证输入参数,其中输入参数有2个必需的输入和varargin

我如何验证varargin,其中我的varargin具有可变长度


比如:myfun'sum'、'hallo'、'Name'、'address'、

如果且仅当变量输入参数采用参数-值对的形式时,可以执行以下操作:

function result = myfun(varargin)
    p = inputParser;
    p.addRequired('input1', @validation1);
    p.addRquuired('input2', @validation2);
    p.KeepUnmatched = true;
    p.parse(varargin{:});
    params = p.Unmatched;
end
否则,您将无法手动解析输入,我担心:

function result = myfun(input1, input2, varargin)
    p = inputParser;
    p.addRequired('input1', @validation1);
    p.addRquuired('input2', @validation2);
    p.parse(input1, input2);

    for item in varargin:
        % MANUAL VALIDATION GOES HERE
    end

end

那行得通,不是吗?它会说第一个无效字符串(例如非目标字符串)与任何有效参数都不匹配。你想发生什么?忽略无效的?
function result = myfun(input1, input2, varargin)
    p = inputParser;
    p.addRequired('input1', @validation1);
    p.addRquuired('input2', @validation2);
    p.parse(input1, input2);

    for item in varargin:
        % MANUAL VALIDATION GOES HERE
    end

end