在函數文件中寫入以下內容
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};
即可