|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
" j2 O5 z$ k' ]2 z, Y( `, H7 E
1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit- K, U' _$ G* @" R
C C5 O7 |! D! v! ]3 `' K0 h0 t$ ]在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:8 _" t7 l7 F$ r# J( o+ Q
0 W, s" ]6 o' @0 m4 m* y
[num,txt,raw]= xlsread('./数据.xlsx');$ f1 ^! t) Z# ^3 @" T
RES(resRow,1) = raw{i,4}
- {, e' S" |8 Q8 L( _4 V发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:
4 F4 e5 T4 o/ x- L( M' Q9 s
! n4 l V8 p* {% N# P# FRES(resRow,1) = str2num(raw{i,4});
* v6 C9 D+ K) o问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:
9 D7 x, L0 o' y' N/ N0 I( O
9 r( Y' X9 f' T6 a% E* ?/ D5 o1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。7 _: S8 E. c4 ^5 M8 F! k
1 |9 W3 E& w$ W$ M2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。) y7 y4 d4 `' G7 r; T8 B: K# ^
3 y1 H/ t$ ]/ r. i Y |
|