nargin
, безусловно, самый простой способ сделать это. Кроме того, как правило, хорошая практика, чтобы проверить количество входных аргументов, используя nargchk:
function e = testFunc(a,b,c,d)
error(nargchk(2, 4, nargin, 'struct'));
% set default values
if nargin<4, d = 0; end
if nargin<3, c = 0; end
% ..
c = a*b + c*d;
end
... который действует как способ обеспечить правильное количество аргументов передается. В этом случае требуется минимум два аргумента, максимум четыре.
Если nargchk
не обнаруживает ошибки, выполнение возобновляется нормально, в противном случае генерируется ошибка.Например, вызов testFunc(1)
генерирует:
Not enough input arguments.
UPDATE: Новая функция была введена в R2011b narginchk
, который заменяет использование устаревшей nargchk
+ error
видели выше:
narginchk(2,4);
You могут использовать следующие функции: exist и isempty, чтобы проверить, существует ли переменная и является ли она пуста, соответственно:
if ~exist('c','var') || isempty(c)
c = 10;
end
, который позволяет вызывать ваши функции, такие как: testFunc(1,2,[],4)
говорю это, чтобы использовать значение по умолчанию для c
, но по-прежнему дает значение для d
Вы также можете использовать varargin, чтобы принять переменное количество аргументов.
Наконец мощное средство для анализа и проверок названных входов является использование inputParser
Чтобы посмотреть примеры и другие альтернативы передачи аргументов и установку значений по умолчанию, проверьте this post и комментарии, а также.
Что вы пытаетесь сделать в Matlab? –