zoukankan      html  css  js  c++  java
  • 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};即可
    在这里插入图片描述

  • 相关阅读:
    行编辑
    二叉树
    多项式乘法
    引用标准库查看当前目录
    双向链表
    哈希表查找
    perl模块
    顺序栈实现
    C#中访问注册表
    查看perl的版本、配置和库信息
  • 原文地址:https://www.cnblogs.com/Luweir/p/14147313.html
Copyright © 2011-2022 走看看