matlab inputparser - matlab

मैं इनपुट तर्कों को मान्य करना चाहता हूं inputparser, जहां इनपुट तर्क है 2 required inputs तथा varargin.

  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 को कैसे सत्यापित कर सकता हूं जहां मेरा varargin परिवर्तनीय लंबाई के साथ है।

पसंद : myfun("sum","hallo","Name","address",...)

उत्तर:

जवाब के लिए 0 № 1

यदि (और केवल तभी) आपके चर इनपुट इनपुट तर्क पैरामीटर-मूल्य जोड़े का रूप लेते हैं, तो आप यह कर सकते हैं:

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