|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6 j$ Y0 N! f- H
1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit9 L, W( g# d, j- H- D
, g" z1 i9 ]8 M% B在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:, W2 x; H( \3 L
$ O5 k5 |$ Y+ h% F3 u. _[num,txt,raw]= xlsread('./数据.xlsx');8 Q4 i2 X7 r* a2 T- J) \
RES(resRow,1) = raw{i,4}5 L) `# S6 D! @. r* {7 k
发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:
+ S; \' E( M5 x! b! J
- d! l% U7 r& ~) ?. a- X( aRES(resRow,1) = str2num(raw{i,4});
2 x7 B2 F0 v1 I7 L问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:, H1 C0 C7 c6 W0 ?4 q
( k& b; e% F* t0 h0 f3 Q2 Z# t! ^1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。
7 u! e: N/ ^9 Q- w2 C- i; ^+ _: M" Z0 L. H4 J _
2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。& E8 P7 r. p% N4 J
" p1 K) l$ R6 y x |
|