找回密码
 注册
关于网站域名变更的通知
查看: 391|回复: 3
打印 上一主题 下一主题

MatLab xlsx读取Cell元胞赋值给数组提示Subscripted assignment dimension mismatch

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-3-23 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

) U0 Z$ z2 F" f1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit9 ?# L8 G* t/ C  J$ m) q0 w

# B) O; u9 f- b: N# ?6 q在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:) k+ M2 N; l, U) `/ a% U8 Z- S; G4 T

- m2 ?9 b% D/ J2 [- |[num,txt,raw]= xlsread('./数据.xlsx');5 l( N5 D+ j$ r9 _
RES(resRow,1) = raw{i,4}
7 }! u/ K  Y4 J6 ]' }9 s发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:- h+ v) k. S+ D: D& U# V% |

7 e/ ]& S, V- g! f) fRES(resRow,1) = str2num(raw{i,4});! `4 S- A0 E; ^. r  Y1 s% c* s
问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:1 S$ w0 T4 {; Z9 I! P3 L4 q' m% f
7 D) j8 T7 c# r5 v' ]3 L
1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。
' [5 D% t) b& ?% O8 Q% b6 i
& |- P4 |1 M9 U' D$ a9 H" y* Z+ h2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。
  E) ?" l# j* e! D0 }
& S9 Q( ?0 A, _2 [/ i% j% H

该用户从未签到

2#
发表于 2022-3-23 16:53 | 只看该作者
matlab 中cell元胞的访问形式

该用户从未签到

4#
发表于 2022-3-23 18:16 | 只看该作者
这句话记住了:使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。

“来自电巢APP”

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-28 17:41 , Processed in 0.156250 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表