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

posted @ 2020-09-05 14:39  Luweir  阅读(2890)  评论(0编辑  收藏  举报