|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
& ^$ L' X' o* k5 a1,软件环境:Windows 7 Ultimate sp1、matlabR2012b 32bit
1 P3 g2 @0 t* f* c' r5 ^0 M# Q9 j( [5 |7 c+ c( B' y a `
在一个项目中,需要从xlsx文件中读取数据到矩阵中,但是xlsx中某些列是字符串,因此必须通过元胞形式读取,然后再处理成矩阵的形式,下面我们来看看操作过程:- d* K. _+ ^( y# g3 m4 Q2 X2 c6 [* Q
% v' a% j1 v) o" _7 @2 x. ~( o9 Z[num,txt,raw]= xlsread('./数据.xlsx');' z% R3 E& |, T
RES(resRow,1) = raw{i,4}) T+ v* c g) O
发现第二行报错,Subscripted assignment dimension mismatch,原因其实是raw{i,4}读取到的是一个字符串的形式,我们需要转成number类型才能够赋值给矩阵,于是代码改成下面:
4 p* m/ c% w2 S: w- e% j$ J# L
: B9 H- l9 p& ?8 uRES(resRow,1) = str2num(raw{i,4});+ I6 F0 _8 L1 N a2 K. d9 h
问题解决,另外需要注意一下,matlab 中cell元胞的访问形式如下:1 Y1 i) K r# @3 M+ [2 H: _
1 i0 c# m# ?/ D1 l
1、使用Cell(a,b)括号的形式访问,返回的是第a行b列的Cell,返回的是一个子Cell。
* H: ]* q3 u% ]% Z1 c2 R, y m D7 j) ^% [( W R
2、使用Cell { a,b }大括号的形式访问,返回的是第a行b列的Cell中的内容,返回的是字符串。! m" m/ q+ c/ t1 u, m
5 z! C# Q4 A8 ^- P/ F5 Q1 p
|
|