Main Content

nargoutchk

验证输出参数数目

说明

示例

nargoutchk(minArgs,maxArgs) 验证当前函数调用中指定的输出参数的数目。如果输出数目小于 minArgs 或大于 maxArgsnargoutchk 将引发错误。如果输出数目在 minArgsmaxArgs 之间(包括二者),则 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 小于 minArgsnargoutchk 将返回字符向量 'Not enough output arguments.'。如果 numArgs 大于 maxArgsnargoutchk 将返回字符向量 'Too many output arguments.'。其他情况下,nargoutchk 将返回空矩阵。

注意

不推荐使用 msgStruct

消息和标识符,以包含 messageidentifier 字段的结构体形式返回。如果 numArgs 小于 minArgsnargoutchk 将返回下面的结构体:

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

如果 numArgs 大于 maxArgsnargoutchk 将返回下面的结构体:

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

其他情况下,nargoutchk 将返回一个空结构体。

提示

  • 要验证参数有最小数目限制,但没有最大数目限制,请将 maxArgs 设置为 inf。例如:当输出少于五个时,nargoutchk(5,inf) 将引发错误。

  • 要验证参数数目为一个确切数,请为 minArgsmaxArgs 指定相同的值。例如:如果输出并非正好三个,nargoutchk(3,3) 会引发错误。

  • 如果 minArgs 是 0 并且 maxArgsnargout,则您不需要使用 nargoutchk

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出