原
数据读取入门——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')
日期 | 销量 |
2015/2/28 | 2.6182e+03 |
2015/2/27 | 2.6084e+03 |
2015/2/26 | 2.6519e+03 |
2015/2/25 | 3.4421e+03 |
2015/2/24 | 3.3931e+03 |
2015/2/23 | 3.1366e+03 |
2015/2/22 | 3.7441e+03 |
[num,txt,raw]=xlsread('ex1.xlsx')
输出结果如下
num=
2.6182e+03 |
2.6084e+03 |
2.6519e+03 |
3.4421e+03 |
3.3931e+03 |
3.1366e+03 |
3.7441e+03 |
日期 | 销量 |
2015/2/28 |
2015/2/27 |
2015/2/26 |
2015/2/25 |
2015/2/24 |
2015/2/23 |
2015/2/22 |
日期 | 销量 |
2015/2/28 | 2.6182e+03 |
2015/2/27 | 2.6084e+03 |
2015/2/26 | 2.6519e+03 |
2015/2/25 | 3.4421e+03 |
2015/2/24 | 3.3931e+03 |
2015/2/23 | 3.1366e+03 |
一般我们进行的数据分析都是同时对数值和字符进行处理的,本人建议利用num作数据预处理,然后用经过缺失和异常数据插补的raw来生成新的Excel表格,再利用新的Excel表格作下一步的工作即可。
祝愿大家玩熟xlsread,千万别像我一样卡在Excel数据读取上了,嘻嘻。