matlab inputparser - matlab

Voglio convalidare gli argomenti di input con inputparser, dove hanno gli argomenti di input 2 required inputs e 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{:})  ??

Come posso convalidare varargin dove il mio varargin è di lunghezza variabile.

piace : myfun("sum","hallo","Name","address",...)

risposte:

0 per risposta № 1

Se (e solo se) gli argomenti di input della variabile assumono la forma di coppie parametro-valore, puoi farlo:

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

Altrimenti, sei bloccato con l'analisi manuale degli input, temo:

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