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++ с помощью MATLAB® Coder™.

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте