exponenta event banner

nargchk

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

nargchk не рекомендуется. Используйте narginchk вместо этого.

Синтаксис

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

Описание

пример

msgText = nargchk(minArgs,maxArgs,numArgs) проверяет количество входных параметров и возвращает сообщение, если количество входных параметров, numArgs, является меньше, чем minArgs или больше, чем maxArgs.

Этот синтаксис совпадает с msgText = nargchk(minArgs,maxArgs,numArgs,'string').

пример

msgStruct = nargchk(minArgs,maxArgs,numArgs,'struct') возвращает структуру сообщения вместо вектора символов.

Примеры

свернуть все

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

function checkInputs(varargin)
    msgTxt = nargchk(2,3,nargin)
end

Вызовите функцию checkInputs с верным номером входных параметров. nargchk возвращает пустой символьный вектор.

checkInputs(13,7)
msgTxt =

     []

Вызовите функцию checkInputs с очень небольшим числом входных параметров.

checkInputs(42)
msgTxt =

    'Not enough input arguments.'

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

checkInputs(0,1,1,2,3)
msgTxt =

    'Too many input arguments.'

В файле с именем checkInputs создайте функцию, которая использует nargchk с параметром 'struct', чтобы проверить, что функция была вызвана с верным номером входных параметров.

function checkInputs(varargin)
    msgStruct = nargchk(2,3,nargin,'struct');
    error(msgStruct)
end

В командной строке вызовите функцию checkInputs с принятым количеством входных параметров. nargchk не выдает ошибку.

checkInputs(13,7)

Вызовите функцию checkInputs с очень небольшим числом входных параметров.

checkInputs(42)
Error using checkInputs (line 3)
Not enough input arguments.

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

checkInputs(0,1,1,2,3)
Error using checkInputs (line 3)
Too many input arguments.

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

свернуть все

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

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

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

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

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

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

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

свернуть все

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

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

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

       message: 'Not enough input arguments.'
    identifier: 'MATLAB:nargchk:notEnoughInputs'

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

       message: 'Too many input arguments.'
    identifier: 'MATLAB:nargchk:tooManyInputs'

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

Советы

  • nargchk часто используется с функцией error. Функция error принимает любой тип возвращаемого значения от nargchk: вектор символов сообщения или структура сообщения. Например, эта команда использует структуру выходного сигнала от nargchk как вход к функции error.

    error(nargchk(2,4,nargin,'struct'))

    Если количество входных параметров в ожидаемой области значений, то nargchk возвращает пустой символьный вектор или структуру. Когда функция error получает пустой символьный вектор или структуру, она не выдает ошибку.

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