EDA365电子论坛网

标题: MatLab xlsx读取Cell元胞赋值给数组提示Subscripted assignment dimension mismatch [打印本页]

作者: ulppknot    时间: 2022-3-23 15:07
标题: MatLab xlsx读取Cell元胞赋值给数组提示Subscripted assignment dimension mismatch

5 ^% f" E) h3 g5 v( T7 Y' Q# v* W1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit
5 S9 G  z# c+ u; e- h( j/ |
( m# S; i7 e$ d9 w6 Q在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:! M$ N# }: k3 U/ W, w/ M& x% g0 R
2 Z' o& Z0 T; I+ ^: C
[num,txt,raw]= xlsread('./数据.xlsx');
& n( }1 Q. \+ d7 g( W) ^* L. jRES(resRow,1) = raw{i,4}
9 `( E4 I5 Y8 q% j! {1 ?9 j发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:, K6 F! @' j4 \& x

, b- }' G/ o! U" MRES(resRow,1) = str2num(raw{i,4});- u6 A7 K( S, [% V7 T* t
问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:
& A# v$ j4 b  h3 T0 d
0 E- s+ t7 e* d" A6 U( F* e1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。
& p8 g/ U" J) c5 z# g6 w* F% ^" ~+ c0 I2 u8 E7 [( g
2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。
  Q$ \( n; b' C2 a
) w& j9 \* J  |- G& Q& x/ ~
作者: Uqzalq    时间: 2022-3-23 16:53
matlab 中cell元胞的访问形式
作者: NingW    时间: 2022-3-23 17:05
zheg
作者: ANkeer    时间: 2022-3-23 18:16
这句话记住了:使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2