简体   繁体   English

Matlab输入解析器

[英]matlab inputparser

I want to validate input arguments with inputparser , where the input arguments have 2 required inputs and varargin . 我想使用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{:})  ??

How can i validate varargin where my varargin is with variable length. 我如何验证varargin长度可变的varargin。

like : myfun('sum','hallo','Name','address',...) 像: myfun('sum','hallo','Name','address',...)

If (and only if) your variable input arguments take the form of parameter-value pairs, you can do this: 如果(且仅当)变量输入参数采用参数-值对的形式,则可以执行以下操作:

function result = myfun(varargin)
    p = inputParser;
    p.addRequired('input1', @validation1);
    p.addRquuired('input2', @validation2);
    p.KeepUnmatched = true;
    p.parse(varargin{:});
    params = p.Unmatched;
end

Otherwise, you are stuck with manually parsing the inputs, I am afraid: 否则,您将无法手动解析输入,恐怕:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM