数据读取入门——xlsread

数据读取入门——xlsread

近期忙于准备9月14日至9月17日的高教社杯数学建模竞赛,由于本人主要负责建模和算法工作,因此每天抽出一定时间和精力放到MATLAB上。不过今天并不顺利,仅仅在一个Excel表格的读取上就犯了难,字符型和数值型完全蒙圈,还好,最终攻克了这个小难题,本文也算是分享我对xlsread函数的一点心得。

1.只含数值型变量的Excel表格

这个两种方法:粘贴或xlsread函数调用。粘贴不必多说,至于xlsread,我们利用如下格式:

num=xlsread('filename','sheet','range') 式中括号内的三项都要加单引号,filename顾名思义,就是要导入的Excel的文件名,注意加.xls或.xlsx就好,第二个sheet就是表格页名,第三个range是指要导入数据的范围,这个对Excel不熟练的话建议用MATLAB打开Excel表格,直接用鼠标选中要导入的数据,然后表格里会自动出现选中数据的范围(这个的确好用),写入range即可。

2.同时含数值型变量和字符型变量的Excel表格

这个稍有些麻烦。

首先,如果仅仅是需要处理其中数据,那么方法同1。如果既要处理数据又要处理字符型变量的话,就经常用到下面两种格式:

[num,txt]=xlsread('filename','sheet','range')[num,txt,raw]=xlsread('filename','sheet','range')

其中,num是数值型变量且为矩阵,txt是字符型变量且为细胞数组,raw既含数值型变量又含字符型变量,当然,raw是细胞数组。举个例子,

日期销量2015/2/282.6182e+032015/2/272.6084e+032015/2/262.6519e+032015/2/253.4421e+032015/2/243.3931e+032015/2/233.1366e+032015/2/223.7441e+03

这是一个名为ex1.xlsx的Excel表格的全部内容,现在我们读取它的每一部分

[num,txt,raw]=xlsread('ex1.xlsx')

输出结果如下

num=

2.6182e+032.6084e+032.6519e+033.4421e+033.3931e+033.1366e+033.7441e+03

txt=

日期 销量

2015/2/282015/2/272015/2/262015/2/252015/2/242015/2/232015/2/22

raw=

日期销量2015/2/282.6182e+032015/2/272.6084e+032015/2/262.6519e+032015/2/253.4421e+032015/2/243.3931e+032015/2/233.1366e+03

注:txt和raw输出的每一个细胞单元都带单引号。

一般我们进行的数据分析都是同时对数值和字符进行处理的,本人建议利用num作数据预处理,然后用经过缺失和异常数据插补的raw来生成新的Excel表格,再利用新的Excel表格作下一步的工作即可。

祝愿大家玩熟xlsread,千万别像我一样卡在Excel数据读取上了,嘻嘻。

相关推荐