1

我想用 验证输入参数inputparser,其中输入参数有 2 required inputsvarargin

  function = myfun( input1,input2,varargin)
  p = inputParser;
  addRequired(p,'input1',@(x) any(validatestring(x,{'sum','sub'})))
  addRequired(p,'input2',@ischar)

  parse(p,input1,input2,varargin{:})  ??

我如何验证我的 varargin 长度可变的地方。

喜欢 :myfun('sum','hallo','Name','address',...)

4

1 回答 1

0

如果(且仅当)您的变量输入参数采用参数-值对的形式,您可以这样做:

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
于 2013-03-04T15:14:12.647 回答