无法执行赋值,因为左侧和右侧的元素数目不同 您所在的位置:网站首页 lspb 无法执行赋值,因为左侧和右侧的元素数目不同

无法执行赋值,因为左侧和右侧的元素数目不同

#无法执行赋值,因为左侧和右侧的元素数目不同| 来源: 网络整理| 查看: 265

"无法执行赋值,因为左侧和右侧的元素数目不同"问题的解决

报错信息

matlab命令行提示如下错误信息,并指出产生错误的代码和行号

无法执行赋值,因为左侧和右侧的元素数目不同

分析

出现这个报错说明矩阵左右两边元素个数不相等,我们要做的是理解两边元素个数为什么不相等,再根据情况修改。我总结了如下步骤:

定位到报错行查看一下等号左右两边元素个数,这里通过观察可能看不出问题,可以用size函数分别查看两边元素的个数充分理解等号左右两边变量的类型,到底是数值还是字符数组或字符串数组,有没有元胞数组等……,搞清楚左右两边是一个完整的矩阵还是单个元素,我见过有人将矩阵和单个元素用等号连接对容易让人混淆的情形,要着重考虑,比如代码 A = char(ones(1,10)); A(1) = '123' ,左边是字符数组A的第一个元素,该位置只能保存一个字符,而右边是一个字符数组,这个字符数组有3个元素,每个元素代表一个字符,这个操作将包含3个字符的字符数组赋值给只能包含一个字符的位置,这样一来出现“左侧和右侧的元素数目不同”的报错也属正常。修改方案A = string(ones(1,10)); A(1) = "123"这段代码将A修改为字符串数组,‘123’改为“123”,这样就将字符串保存到了字符串数组中 补充 字符数组是每个元素保存一个字符的数组 字符串数组是每个元素保存一个字符串的数组


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有