|
|
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 |
|