|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
9 I9 k5 f( o1 K1 D2 x1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit
& f1 }7 s& a O3 v9 B3 }/ ]& t0 q, Y7 r4 B7 o+ ?$ P
在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:
3 g {1 `& l) a+ |2 s; J
A/ _. h: b* B# }[num,txt,raw]= xlsread('./数据.xlsx');2 X' [! N8 J$ Z
RES(resRow,1) = raw{i,4}
% i, W, p+ d" \; W0 ]% m发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:' k% R5 L3 v, ]
. H$ R; f8 w7 X
RES(resRow,1) = str2num(raw{i,4});9 A/ E$ e1 w+ M' S$ Y6 _
问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:
8 a. N& j& S: b# T$ t* J) A' L; s8 w3 a7 N: D+ v7 F- l T
1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。
! B! [: n* P {7 i) n+ j- L- Y; X% |5 R5 m
2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。% a# r* _7 e1 Y! D1 | J2 T
$ t6 b# {+ f5 t% E |
|