美文网首页
Matlab与Excel的相互导入

Matlab与Excel的相互导入

作者: WYH_9ceb | 来源:发表于2017-04-27 20:40 被阅读0次

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


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

           想达到的效果是:

    9W`{@(EKXZLYH$5~ZMH%M`J.png

           可是结果却是:

    ![4F${]TNV`1VKE08NSL0X0YH.png](https://img.haomeiwen.com/i5397630/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,这个问题就这么过去了,我们再来看看这个问题:一个表格中可以包含多个表格,像这样:


    ZOIOBCU7CN{ZOMQU73}ZYOG.png

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

    A=xlsread(filename,'Area1_Load')
    

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

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

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

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

    X{Z3ASG95GMOAC%IC{IM8JD.png

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

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


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

    相关文章

      网友评论

          本文标题:Matlab与Excel的相互导入

          本文链接:https://www.haomeiwen.com/subject/pkynzttx.html