exponenta event banner

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