Я лично нашел, что использование inputParser излишне сложно. Для Matlab всегда есть 3 вещи для проверки - наличие, тип и диапазон / значения. Иногда вы должны назначить значения по умолчанию. Вот пример кода, очень типичный для моей проверки ошибок: dayofWeek
- аргумент, третий в функции. (Добавлены дополнительные комментарии.) Большая часть этого кода предшествует существованию assert()
в Matlab. Я использую утверждения в моем более позднем коде вместо конструкций if ... error()
.
%Presence
if nargin < 3 || isempty(dayOfWeek);
dayOfWeek = '';
end
%Type
if ~ischar(dayOfWeek);
error(MsgId.ARGUMENT_E, 'dayOfWeek must be a char array.');
end
%Range
days = { 'Fri' 'Sat' 'Sun' 'Mon' 'Tue' 'Wed' 'Thu' };
%A utility function I wrote that checks the value against the first arg,
%and in this case, assigns the first element if argument is empty, or bad.
dayOfWeek = StringUtil.checkEnum(days, dayOfWeek, 'assign');
%if I'm this far, I know I have a good, valid value for dayOfWeek