这个例子展示了如何检查您的自定义函数是否接收了有效数量的输入或输出参数。MATLAB®自动执行一些参数检查。对于其他情况,可以使用narginchk
或nargoutchk
.
当可以从函数定义中确定数值时,MATLAB会检查函数是否接收了比预期更多的参数。例如,这个函数最多接受两个输出和三个输入:
函数myFunction (x, y) = (a, b, c)
如果你传递了太多的输入myFunction
, MATLAB发出一个错误。你不需要打电话narginchk
来检查这个箱子。
myFunction (X, Y) =(1、2、3、4)
使用myFunction时出错,输入参数太多。
使用narginchk
和nargoutchk
函数来验证您的函数是否接收到:
所需参数的最小数量。
当函数使用时,不要超过参数的最大数目变长度输入宗量
或varargout
.
在名为testValues.m
这需要至少两个输入。第一个输入是一个阈值,用于与其他输入进行比较。
函数testValues(threshold,varargin) minInputs = 2;maxInputs =正;narginchk (minInputs maxInputs)为k = 1:(nargin-1)如果(varargin{k} >阈值)'测试值%d超过%d\n'k阈值);结束结束
调用testValues
投入太少。
testValues (10)
使用testValues出错(第4行)输入参数不足。
调用testValues
有足够的输入。
testValues (10, 11111)
试验值2超过10试验值3超过10
在名为mysize.m
返回向量中输入数组的维数大小
函数),并可选地返回与每个维度的大小对应的标量值。使用nargoutchk
验证所请求的单个大小的数量不超过可用维的数量。
函数[size evector,varargout] = mysize(x) minOutputs = 0;maxOutputs = ndims(x) + 1;nargoutchk(minOutputs,maxOutputs) sizeevector = size(x);varargout =细胞(1、nargout-1);为k = 1:length(varargout) varargout{k} = sizeevector (k);结束
调用mysize
具有有效数量的输出。
一个=兰德(3、4、2);(实际大小的、nrows ncols npages] = mysize (A)
Fullsize = 3 4 2 nrows = 3 ncols = 4 npages = 2
调用mysize
输出太多。
= 1;(实际大小的、nrows ncols npages] = mysize (A)
使用mysize错误(第4行)输出参数太多。