只是一篇学习笔记,大佬请绕道……
由于大一计算机基础基本都是水过去的,因此对Excel是知之甚少,直到前段时间在看电工杯建模16年的题时,发现Excel在数据题中的运用是如此之重要,因此,打算特地花点时间去学习一下。
Excel作为一个制表软件,它自然是擅长对表格数据进行分类整理,而在数据处理方面,还是要依靠特定的数学软件的,因此,学会Matlab与Excel的相互导入就显得尤为重要。
在这里,我就介绍一下xlsread和xlswrite,顾名思义,xlsread就是读取Excel中的数据,而xls则是将matlab中的数据写入到Excel中。
首先,我写了这样一段代码:
headers=['First','Second','Third'];
xlswrite('first.xlsx',[headers;value]);
filename='first.xlsx';
A=xlsread(filename)
想达到的效果是:
可是结果却是:
![4F${]TNV`1VKE08NSL0X0YH.png](http://upload-images.jianshu.io/upload_images/5397630-9c2e5825e1eb4489.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这就很尴尬了,然后就把表格改了改,代码中逗号改成了空格:
value=[1 2 3;4 5 6;7 8 9];
headers=[1 2 3];
xlswrite('first.xlsx',[headers;value]);
filename='first.xlsx';
A=xlsread(filename)
这样就可以了,老子也懒得研究为什么了,八成是那字符给整的。
表格的导入导出算是解决了,但是又有一个问题了,就是在导入的过程中,文件是怎么找的呢?这个问题,我想学过编程的大概都知道了吧,我也不敢在这装逼,随便说说吧。那么首先就是相对路径和绝对路径的问题了,比如前面的一段代码:
filename='first.xlsx';
还可以这么写:
filename='D:\Program Files\MATLAB\M文件\first.xlsx';
前者是相对路径,要求表格文件要和m文件在同一文件夹中,或者在m文件所处文件夹包含的文件夹中,后者是绝对路径,你爱把表格放哪就放哪,开心就好。
OK,这个问题就这么过去了,我们再来看看这个问题:一个表格中可以包含多个表格,像这样:
这是三个表格,比如我只需要导入Area1_Load这个表格中的数据,该怎么办呢?其实也很简单,只需在exslread中加一个参数,比如:
A=xlsread(filename,'Area1_Load')
这样就能够读取指定表格的数据啦,当然默认是读取第一个表格的数据。
在做到了能读取指定表格后,再进一步,不就是读取一个表格中指定位置的数据了吗。好,现在我在原有代码基础上再加一个参数:
A=xlsread(filename,'Area1_Load','A1:C4')
聪明的人应该都能看出来(看不出的也请强行聪明),A1,C4指的就是表格中的位置:
即读取第1行第A列(作为左上角)到第4行第C列(作为右下角)的所有数据。
大概就这些了,个人认为这个还是有点用的,接下来打算研究matlab的回归工具箱。
不幸看完的大佬,真是不好意思,献丑了