|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
% W8 `8 X# I7 r* e1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit3 N% S# I; m# E% b+ }# \ ^
' \" P" f# R; ?& J% s( `# E. B- H; \ R在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:
' u, K. x. P( P1 O- e* ^. G; l8 k6 Z6 V2 _6 v) p& @
[num,txt,raw]= xlsread('./数据.xlsx');" j) g& H) S4 ^' L& ~
RES(resRow,1) = raw{i,4}; m- A0 m6 y. D( d. k$ f4 p
发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:8 G4 z8 t; G6 j0 E3 m. l1 p
8 A9 d3 ]' N b" R
RES(resRow,1) = str2num(raw{i,4});
- A. }, m% Z! F$ u! g( I# K/ Z5 a问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:
. x. u; e `9 p; R; @" e( i0 l5 Z. B6 u, J8 S, Q
1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。
% ?5 K( N/ a+ J1 n/ l
, K; i: O( i' @. U3 Q2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。: V# \$ `0 D3 l
3 H( ~5 E2 h. \5 V# \9 y, d |
|