在函数文件中写入以下内容
function re=fun(a,b,varargin)
if nargin == 2
re=a+b;
elseif nargin==3
c=varargin(1);
re = a + b + c;
else
error('wrong');
end
在命令行运行时出现以下错误:
>> fun(1,2,3)
varargin =
1×1 cell 数组
{[3]}
未定义与 'cell' 类型的输入参数相对应的运算符 '+'。
出错 fun (line 7)
re = a + b + c;
查资料发现varargin是cell类型的数组,有着特殊的引用方式
与普通矩阵,数组的主要区别在于:通过()访问cell数组时访问到的是cell单元,通过{}访问cell数组时访问到的是cell单元储存的内容,举例如下图所示,其他操作基本一样。
将函数文件中第5行改成c=varargin{1};
即可