这个例子展示了如何检查您的自定义函数是否接收了有效数量的输入或输出参数。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) mininput = 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
验证请求的单个尺寸的数量不超过可用尺寸的数量。
函数[sizeVector,varargout] = mysize(x) minOutputs = 0maxoutput = ndims(x) + 1;sizeVector = size(x);varargout =细胞(1、nargout-1);为varargout{k} = sizeVector(k);结束
调用mysize
具有有效数量的输出。
一个=兰德(3、4、2);(实际大小的、nrows ncols npages] = mysize (A)
全尺寸= 3 4 2 nrows = 3 ncols = 4 npages = 2
调用mysize
输出太多。
= 1;(实际大小的、nrows ncols npages] = mysize (A)
使用mysize的错误(第4行)输出参数太多。