|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
+ d: D4 \5 h# }; b# v8 f1 ^# g
1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit$ o Y2 |: M& @
' _2 @ }6 C0 U9 Z$ G
在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:! C4 c5 W0 \3 ~4 P
6 v! t# f6 z6 K2 d
[num,txt,raw]= xlsread('./数据.xlsx');
! b3 `! v6 x0 D4 B$ F/ h) S8 e$ RRES(resRow,1) = raw{i,4}" r; K% `+ f/ W/ b! y) L: Y( L" y
发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:
& k* E+ y2 j+ Y4 b# U4 }( {! r1 h) b' V8 S
RES(resRow,1) = str2num(raw{i,4});. J! F$ K0 J9 u4 F8 O5 P
问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:9 T1 ?7 D! [. L6 C5 ~3 J
' Z: J7 G8 ~$ }" b! y, h2 [
1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。- J2 r! V$ S, r# b
# q# A- t4 D0 G& P& x" |6 b% y
2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。
8 |) w$ O! J& e" a3 U! i
* D3 k S5 K: [7 h( m |
|