matlab中未定義與 ‘cell‘ 類型的輸入參數相對應的運算符 ‘+‘ 的解決方案


在函數文件中寫入以下內容

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};即可
在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM