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

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值