nargoutchk

Проверьте количество выходных аргументов

Описание

пример

nargoutchk(minArgs,maxArgs) проверяет количество выходных аргументов, заданное в текущем вызове функции. nargoutchk выдает ошибку, если количество выходов меньше minArgs или больше maxArgs. Если количество выходов между minArgs и maxArgs (включительно), затем nargoutchk ничего не делает.

msgText = nargoutchk(minArgs,maxArgs,numArgs) подтверждает значение numArgs, и возвращает сообщение, если numArgs меньше minArgs или больше maxArgs. Использование этого синтаксиса не рекомендуется.

msgStruct = nargoutchk(minArgs,maxArgs,numArgs,'struct') возвращает структуру сообщения. Использование этого синтаксиса не рекомендуется.

Примеры

свернуть все

Проверьте, что вызывается функция с минимум двумя и максимум пятью выходными аргументами.

В файле с именем checkOutputs.m, создайте функцию, которая использует nargoutchk чтобы убедиться, что функция была вызвана с допустимым количеством выходов. Сигнатура функции указывает, что checkOutputs принимает переменное количество выходных аргументов.

function varargout = checkOutputs(varargin)
minArgs=2;  
maxArgs=5;
nargoutchk(minArgs,maxArgs)

disp("You requested " + nargout + " outputs.")

varargout = cell(nargout,1);
for k=1:nargout
    varargout{k} = randi(100);
end
end

Вызовите функцию с одним выходным аргументом.

a = checkOutputs(13)
Error using checkOutputs (line 4)
Not enough output arguments.

Вызовите функцию снова с пятью выходными аргументами.

[a,b,c,d,e] = checkOutputs(7,42);
You requested 5 outputs.

Вызовите функцию снова с шестью выходными аргументами.

[a,b,c,d,e,f] = checkOutputs(7,42);
Error using checkOutputs (line 4)
Too many output arguments.

Входные параметры

свернуть все

Минимальное количество принятых выходов, заданное как скаляр.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Максимальное количество принятых выходов виде скаляра.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Примечание

Использование numArgs не рекомендуется.

Количество выходов функции, заданное как скаляр. Как правило, вы используете nargout функция для определения количества выходных аргументов, заданных в вызове функции.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Примечание

Использование msgText не рекомендуется.

Текст сообщения, возвращенный следующим 'Not enough output arguments.', 'Too many output arguments.', или пустая матрица.

Если numArgs меньше minArgs, затем nargoutchk возвращает вектор символов 'Not enough output arguments.' Если numArgs больше maxArgs, затем nargoutchk возвращает вектор символов 'Too many output arguments.' В противном случае, nargoutchk возвращает пустую матрицу.

Примечание

Использование msgStruct не рекомендуется.

Сообщение и идентификатор, возвращенные как структура с message и identifier поля. Если numArgs меньше minArgs, nargoutchk возвращает эту структуру:

       message: 'Not enough output arguments.'
    identifier: 'MATLAB:nargoutchk:notEnoughOutputs'

Если numArgs больше maxArgs, nargoutchk возвращает эту структуру:

       message: 'Too many output arguments.'
    identifier: 'MATLAB:nargoutchk:tooManyOutputs'

В противном случае nargoutchk возвращает пустую структуру.

Совет

  • Чтобы убедиться, что у вас есть минимальное количество аргументов, но нет максимального количества, установите maxArgs на inf. Для примера: nargoutchk(5,inf) выдает ошибку, когда меньше пяти выходов.

  • Чтобы убедиться, что у вас есть точное количество аргументов, задайте то же значение для minArgs и maxArgs. Для примера: nargoutchk(3,3) выдает ошибку, если у вас нет точно трех выходов.

  • Если minArgs 0 и maxArgs является nargout, тогда вам не нужно использовать nargoutchk.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Представлено до R2006a