我有一个函数,它将可选参数作为名称/值对。
function example(varargin)
% Lots of set up stuff
vargs = varargin;
nargs = length(vargs);
names = vargs(1:2:nargs);
values = vargs(2:2:nargs);
validnames = {'foo', 'bar', 'baz'};
for name = names
validatestring(name{:}, validnames);
end
% Do something ...
foo = strmatch('foo', names);
disp(values(foo))
end
example('foo', 1:10, 'bar', 'qwerty')
似乎在提取适当的值方面有很多工作要做(而且它仍然不是特别健壮,再次指定的输入也很糟糕)。有没有更好的方法来处理这些名称/值对?有没有 MATLAB 自带的辅助函数?