Matlab与Excel的相互导入

只是一篇学习笔记,大佬请绕道……

       由于大一计算机基础基本都是水过去的,因此对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)

       想达到的效果是:

《Matlab与Excel的相互导入》 9W`{@(EKXZLYH$5~ZMH%M`J.png

       可是结果却是:

![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,这个问题就这么过去了,我们再来看看这个问题:一个表格中可以包含多个表格,像这样:

《Matlab与Excel的相互导入》 ZOIOBCU7CN{ZOMQU73}ZYOG.png

       这是三个表格,比如我只需要导入Area1_Load这个表格中的数据,该怎么办呢?其实也很简单,只需在exslread中加一个参数,比如:

A=xlsread(filename,'Area1_Load')

       这样就能够读取指定表格的数据啦,当然默认是读取第一个表格的数据。

       在做到了能读取指定表格后,再进一步,不就是读取一个表格中指定位置的数据了吗。好,现在我在原有代码基础上再加一个参数:

A=xlsread(filename,'Area1_Load','A1:C4')

       聪明的人应该都能看出来(看不出的也请强行聪明),A1,C4指的就是表格中的位置:

《Matlab与Excel的相互导入》 X{Z3ASG95GMOAC%IC{IM8JD.png

       即读取第1行第A列(作为左上角)到第4行第C列(作为右下角)的所有数据。

       大概就这些了,个人认为这个还是有点用的,接下来打算研究matlab的回归工具箱。

不幸看完的大佬,真是不好意思,献丑了

    原文作者:WYH_9ceb
    原文地址: https://www.jianshu.com/p/03cd8ed70884
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞