matlab 参数数量,验证函数参数的数量

自动参数检查

MATLAB 在它可以确定来自函数定义的数量时,检查您的函数接收的参数是否多于预期。例如,该函数最多接受两个输出和三个输入:

function [x,y] = myFunction(a,b,c)

如果您向 myFunction 传递太多的输入,MATLAB 将发出错误。您无需调用 narginchk 即可检查这种情况。

[X,Y] = myFunction(1,2,3,4)

Error using myFunction

Too many input arguments.

使用 narginchk 和 nargoutchk 函数验证您的函数接收的参数数量是否满足以下条件:

达到必需参数的最小数量。

当您的函数使用 varargin 或 varargout 时,不超出参数的最大数量。

通过 narginchk 进行输入检查

在名为 testValues.m 的文件中定义至少需要两个输入的函数。第一个输入是与其他输入对比的阈值。

function testValues(threshold,varargin)

minInputs = 2;

maxInputs = Inf;

narginchk(minInputs,maxInputs)

for k = 1:(nargin-1)

if (varargin{k} > threshold)

fprintf('Test value %d exceeds %d\n',k,threshold);

end

end

调用带有太少输入的 testValues。

testValues(10)

Error using testValues (line 4)

Not enough input arguments.

调用带有足够输入的 testValues。

testValues(10,1,11,111)

Test value 2 exceeds 10

Test value 3 exceeds 10

通过 nargoutchk 进行输出检查

在名为 mysize.m 的文件中定义一个函数,该函数在向量(来自 size 函数)中返回输入数组的维度,并选择性地返回与每个维度大小对应的标量值。使用 nargoutchk 验证请求的各个维度大小的数量未超出可用维度的数量。

function [sizeVector,varargout] = mysize(x)

minOutputs = 0;

maxOutputs = ndims(x) + 1;

nargoutchk(minOutputs,maxOutputs)

sizeVector = size(x);

varargout = cell(1,nargout-1);

for k = 1:length(varargout)

varargout{k} = sizeVector(k);

end

调用带有有效数量的输出的 mysize。

A = rand(3,4,2);

[fullsize,nrows,ncols,npages] = mysize(A)

fullsize =

3 4 2

nrows =

3

ncols =

4

npages =

2

调用带有太多输出的 mysize。

A = 1;

[fullsize,nrows,ncols,npages] = mysize(A)

Error using mysize (line 4)

Too many output arguments.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值