nargoutchk

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

Синтаксис

nargoutchk(minArgs,maxArgs)
msgText = nargoutchk(minArgs,maxArgs,numArgs)
msgStruct = nargoutchk(minArgs,maxArgs,numArgs,'struct')

Описание

пример

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

Была ли эта тема полезной?