matlab利用excellink达到在excel中直接画图
- 格式:doc
- 大小:793.50 KB
- 文档页数:37
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread(''),此时读取的文件须在MATLAB默认路径下,命令具体用法及参数含义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
1.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),file-Import Data-在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish-导入成功-在workspace中看到图5(导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:
法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4
图5图6图7图8。
1.如何将Excel中的数据在MATLAB界面下显示出来:
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此
时读取的文件须在MATLAB默认路径下,命令具体用法及参数含
义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
2.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须是office的(WPS的不可以,MATLAB不能识
别),file-Import Data-在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish-导入成功-在workspace中看到图5(导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:
法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的
plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4
图5
图6
图7
图8。
1.如何将Excel中的数据在MATLAB界面下显示出来:
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此时读取的文件须在MATLAB默认路径下,命令具体用法及参数含义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
2.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须是office的(WPS的不可以,MATLAB不能识别),file-Import Data-在工作路径下找到需要导入的文件(图3)-点击打开
(图4)-点击next-点击finish-导入成功-在workspace中看到图5(导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4
图5
图6
图7
图8。
1. 如何将Excel中的数据在MATLA界面下显示出来:首先Excel必须是office 的(WPS勺不可以,MATLA不能识别),在MATLA中使用命令xlsread读取Excel中的数据到MATLA里,如下所示:[number,txt,raw]=xlsread('noise.xlsx'),此时读取的文件须在MATLA默认路径下,命令具体用法及参数含义可直接用help 命令在MATLA中查找。
读取的数据界面如下:[0.2i60][0.24SO][0.2500][0.2520][0.2540][0.2560][0.2580][0.25Q0][0.2620][0. 2640][0. 2660][0.2680][0.2700][0.2720][0.2740][0. 2760][23.6000][ 28][30.4000]125-2000][ 18][19.2000][2L 2000][17. 20Q0][16.SOOO][17.6000][13.6000][11.2000][13.6000][13.2000][ 10][12.4000]2. 如何将Excel中的数据导入MATLA并在MATLA中画出图像?首先Excel必须是office 的(WPS勺不可以,MATLA不能识别),file-Import Data- 在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish- 导入成功-在workspace中看到图5 (导入的数据)。
至此数据导入成功。
下面是如何利用该数据绘图:法一:双击workspace中的data打开如图6,选中要画图的数据如图7 (数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
>> [number, txt raw!=zlsr*ad C noise.xlsz J)riunber 二0.246023. 60000.24SC 2& 00000.2500 30. 40000. 2520 25.20000. 2E40 18. 00000.2560 2000Di 2580 21. 20000.2600 17.20000. 2620 16.30000. 2640 17. 60000. 13. 60000* 26SA 1],20000. 2700 13. SQ00Import Data査找范圉(X):库计算机网貉名称'悸改日期,,noise.rriat2014/3/1S 19:181^gnoisenKlsx2014/3/1& 19:01I HKTIAB ▼> ®文件名曲):iriOL XISX文件类型⑴;Recognized Filww取消 |JJWorkspace圄■鱼1鲂I^Lr Select data ...〒Name *田[甌Value<874x2 double* rrrCommand Window■+* □ ? X>> plol (datadia?^ I. = 2), J DisplayMafte J p J dataCl;874? 1;2)a ? J YDataSource 1/ data(i:B74? 1:2^ ) .f igurt (ecf)九—K —图81 f 4New to MATLAB? Watch thi$ Sdg see 口旳口轧 or read Getting 5t^rt 亡cLNew Parallel D”ktq 因❼Ctirrent F file Edit 0ew Ins-ert lo&ls Desktop Window Help□ U 矗B |輿耳U 物穏摇TO □囲I ■口IXCommaHd Window。
Matlab具有强大的数据计算和处理、图形显示能力;Excel则具有强大的表格处理同时也有强大的数据统计和显示能力。
在科研过程中常会同时使用这两款软件,如果实现Matlab和Excel的链接,可以满足实际要求。
实现Matlab和Excel的混合编程主要有以下几种方法:1、利用Excel Link(最常用方法)Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件。
通过连接Excel和Matlab,实现Excel和Matlab的数据共享。
使用Excel Link 时,不脱离Excel环境直接在Excel中调用Matlab函数。
具体可参见Matlab帮助或Excel Link手册。
2、利用Excel生成器(Matlab作COM服务器)COM(通用对象模型)是一组面向对象的技术和工具的集合。
利用Matlab提供的COM生成器,把Matlab的算法程序生成组件,这些组件可作为独立的COM对象被Excel的Visual Basic使用。
具体可参见Matlab COM Builder或者Matlab Builder for Excel工具。
3、利用Active X控制(Matlab作COM客户端)ActiveX是 Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型。
主要利用Matlab中的actxserver函数:actxserver('progid');progid为程序的ActiveX部件的标识符,针对不同的程序有不同的progid。
如actxserver('Excel.Application'),然后可利用invoke函数进行一系列操作。
4、文件导入方法利用xlsread和xlswrite函数读写Excel文件(也可用fopen、fread和fwrite函数),然后进行数据处理操作。
另外,还可以通过菜单File->Import data 方法。
专题十外部程序接口10.1 在Excel中使用MATLAB☐Spreadsheet Link程序☐将Excel表格中的数据导出到MATLAB工作空间中☐从MATLAB工作空间导入数据到Excel表格中☐在Excel中调用MATLAB函数进行运算1. Spreadsheet Link程序Spreadsheet Link程序是MATLAB提供的Excel与MATLAB的接口,通过Spreadsheet Link,可以在Excel工作区和MATLAB工作区之间进行数据交换,也可以在Excel中调用MATLAB的函数。
(1)安装Spreadsheet Link的安装是在MATLAB安装过程中,随其他组件一起安装的。
安装完成后,还需要在Excel中进行一些设置后才能使用。
(2)设置选 Excel “文件”菜单的“选项”菜单项,打开“Excel选项”对话框。
在“Excel选项”对话框中,选左边栏的“加载项”,然后单击右边面板下部的“转到”按钮,弹出“加载宏”对话框。
(2)设置在“加载宏”对话框中,单击“浏览”按钮,打开文件“浏览”对话框。
在文件“浏览”对话框,选MATLAB的安装文件夹的子文件夹toolbox\exlink。
在文件夹exlink中选excllink.xlam文件,单击“确定”按钮返回。
(2)设置“加载宏”对话框的“可用加载宏”列表中多了一个“Spreadsheet Link 3.2.5 for use with MATLAB and Excel”选项。
选中该项,返回Excel窗口。
(3)MATLAB命令组加载Spreadsheet Link 后,在Excel窗口“开始”选项卡中多了一个MATLAB命令组。
命令组中包含的一组命令项,分别用于实现启动MATLAB、导入和导出数据、调用MATLAB函数等。
2. 将Excel表格中的数据导出到MATLAB工作空间例1 文件“测试数据.xlsx”存储某门店销售数据,将其中的A~E列的数据导出MATLAB工作区,存入变量sale。
MATLAB与EXCEL混合编程在可选性曲线绘制中的应用殷战稳;舒豪【摘要】文章以EXCEL调用MATLAB编写程序及绘制可选性曲线为例,介绍了利用以EXCEL为平台,MATLAB为后台引擎,通过两者的接口函数,调用MATLAB强大的数据处理功能和绘图功能来实现绘制可选性曲线的目的.【期刊名称】《选煤技术》【年(卷),期】2012(000)004【总页数】4页(P91-94)【关键词】MATLAB;EXCEL;混合编程;可选性曲线【作者】殷战稳;舒豪【作者单位】河南城建学院电气与电子工程系,河南平顶山467036;中国煤炭科工集团北京华宇工程有限公司,北京100011【正文语种】中文【中图分类】TD948可选性曲线的绘制是选煤厂工程设计和日常生产管理中煤质资料分析及数据处理的重要环节,目前,已有专业软件处理此工作。
然而,由于不同软件、程序操作界面友好性的差异,有时应用起来比较麻烦,如单独使用EXCEL或MATLAB绘制可选性曲线时,不仅编程复杂且难以直观表达。
但EXCEL在处理数据方面比较简便,而MATLAB在绘图方面具有强大的功能,因此,将MATLAB和EXCEL混合编程可实现简便而直观地绘制可选性曲线的目的。
1 EXCEL、MATLAB混合编程准备工作下面以EXCEL2003和MATLAB 6.5为例,介绍混合编程过程。
首先要安装这两款软件,然后在EXCEL中实现MATLAB的调用。
操作如下:在EXCEL中点击工具栏选择加载宏后,添加MATLAB 6.5文件夹中exlink.xcl的路径 (例如:d:\\matlab\toolbox\exlink\excllink.xla),即可实现在EXCEL中调用MATLAB[1]。
EXCEL调用MATLAB成功后的界面显示见图1。
2 EXCEL调用MATLAB绘制可选性曲线以2009年兖州煤业集团济三煤矿选煤厂大直径无压给料三产品重介质旋流器Φ1400/1050单机检查结果为例,介绍绘制可选性曲线具体的编程方法。
本章主要介绍如何在excel平台下使用MA TLAB资源。
MA TLAB提供的Spreadsheet Link 将Microsoft Excel和MA TLAB完美结合,即在Excel表单中利用MA TLAB资源,包括科学计算和绘图功能。
其工作原理是:首先在Excel表单中创建命令,然后传递给MA TLAB后台处理,最后将后台处理结果回传到Excel表单中。
1、Spreadsheet Link的安装启动Microsoft Excel,选择工具菜单中的“加载宏”选项点击浏览按钮,选择MA TLAB路径下\toolbox\exlink子目录中的excllink.xla文件,然后点击“确定”按钮即可加载MA TLAB,可以看到Excel运行窗口增加了Spreadsheet Link的工具条,如图所示:2、Spreadsheet Link的启动和退出按照上述步骤安装Spreadsheet Link后,将在每次启动Excel时自动启动Spreadsheet Link和MA TLAB。
如果希望改变此种启动方式,可以在Excel表单单元中输入“=MLAutoStart("no")”语句,执行后则改变了设置。
当然如果希望恢复原设置,可以采用“=MLAutoStart("yes")”语句。
对于Spreadsheet Link和MA TLAB没有自动启动的情况,可以在Excel平台中手动启动。
首先在工具菜单中选择“宏”选项,打开“宏”对话框并输入“MA TLABinit”,单击“执行”按钮后即可启动Spreadsheet Link和MA TLAB。
当退出Excel时自动退出Spreadsheet Link和MA TLAB。
如果希望在Excel平台中退出Spreadsheet Link和MA TLAB,只需在表单单元中输入“=MLClose()”语句即可。
3、Spreadsheet Link的实际应用在Spreadsheet Link应用时,主要是实现Excel数据的读入、MA TLAB对数据的处理和显示以及将处理结果显示在Excel中。
MATLBA 与 Excel 混合编程
Matlab 具有强大的数据计算能力, 但是对于对一些常见的统计图形的显示, 例如棒图,饼图,折线图等, Excel 的显示能力质量很高,且易于控制。
Excel link是一个软件插件,它可以将 Excel 和 Matlab 进行集成。
使用 Excel Link 时,不必脱离 Excel 环境, 而直接在 Excel 的工作区域, 或者宏操作中调用 Matlab 的函数。
Excel 提供了11个函数来实现链接和数据操作。
因此,通过 Excel link这个中介, Excel 成为Matlab 的一个易于使用的数据存储和应用开发前端,它是一个功能强大的计算和图形处理器。
(一 Excel Link的安装
平台:matlab 2009b, office 2007,Excel Link无需安装, 在 matlab2009b 中已有图示步骤:
点击确定后,找到此宏的目录在 matlab 安装文件目录\toolbox\exlink\excllink2007.xlam 最后出现:
(二 Excel Link的函数及其应用
表一:Excel Link的连接管理函数
表二:Excel Link 数据管理函数
具体应用可以看看 MATLAB 的 help 文件,里面都有 (三应用举例1.
并且会动态更新的 2.。
收稿日期:2000205222 作者简介:李杰(1972-),男,硕士研究生,主要研究方向:遥控遥测、CDM A 扩频通信仿真、卫星通信.文章编号:1001-9081(2000)11-0066-02在Excel 中应用M AT LAB李 杰(北京航空航天大学电子工程系,北京100083)摘 要:详细介绍了连接Excel 和M AT LAB 的步骤及在Excel 中应用M AT LAB 的方法,极大地增强了Excel 处理数据的能力和图形输出的能力。
关键词:Excel ;Matlab ;函数中图分类号:TP311 文献标识码:A1 MAT LAB 和Excel 简介M AT LAB 是MathW orks 公司推出的面向工程和计算的交互式计算软件,它已成为国际公认的最优秀的科技应用软件。
自1980年以来,它已被广泛应用于控制系统、信号处理、数据分析、通信系统、金融系统、生物医学等领域。
M AT LAB 拥有三大特点:一是强大的矩阵处理和数值运算能力;二是强大的符号运算能力;三是强大的图形输出能力。
M AT LAB 的三大特点使它不仅能够进行复杂的数据计算、符号运算,而且能够将计算的结果以二维、三维、乃至四维的图形表现出来,并且可以通过对图形线性、立面、色彩、渲染、光线、视角等特性的处理,把计算数据的特征表现得淋漓尽致。
Excel 是一个非常出色的电子表格软件,它以图、文、表三者完美结合的形式被广泛应用于财务、统计和分析等领域。
Excel 内包含一个巨大的内置函数集,供数据处理使用,如能将M AT LAB 强大的数据计算和处理能力、灵活的可编程能力、完美的图形输出能力赋予Excel ,那么Excel 的功能将会变得更加强大。
本文就介绍如何将Excel 和M AT LAB 结合起来,使它们交互协同工作。
2 连接E xcel 和M A T LA B 的步骤与函数1)运行Micros oft Excel ;2)打开工具菜单(T ools ),选择加载宏(Add -Ins ),单击Browse 按钮;3)在C :\M AT LAB \EX LI NK 下找到EXC LI NK.X LA ,单击OK 按钮;4)返回到加载宏(Add -Ins )窗口,单击OK 按钮,Excel Link 则被加载到Excel 中;5)观察Excel 会发现M AT LAB 命令窗口(包括putmatrix ,getmatrix ,evalstring 三个按钮)出现在Excel的任务栏内(如图1)。
1.如何将Excel中的数据在MATLAB界面下显示出来:
首先Excel必须就是office的(WPS的不可以,MATLAB不能识别),在MATLAB中使用命令xlsread读取Excel中的数据到MATLAB里,如下所示:[number,txt,raw]=xlsread('noise、xlsx'),此时读取的文件须在MATLAB默认路径下,命令具体用法及参数含义可直接用help命令在MATLAB中查找。
读取的数据界面如下:
2.如何将Excel中的数据导入MATLAB并在MATLAB中画出图像?
首先Excel必须就是office的(WPS的不可以,MATLAB不能识别), Data-在工作路径下找到需要导入的文件(图3)-点击打开(图4)-点击next-点击finish-导入成功-在workspace中瞧到图5(导入的数据)。
至
此数据导入成功。
下面就是如何利用该数据绘图:
法一:双击workspace中的data打开如图6,选中要画图的数据如图7(数据范围可以根据需要随便选择),点击上方的plot(data(1:874,1:2),画出图像如图8,并且在工作空间中自动显示画图命令。
法二:直接在工作空间中写画图命令。
图3
图4 图5
图6
图7
图8。
excel link是matlab与excel交叉使用的一个加载宏,可能熟练excel的人热爱使用它。
其实matlab有相同的功能,这里不提
安装
我是用的版本是matlabr2012a,excel2010,win7系统
首先确定加载宏路径
特意截图路径
加载宏,视你的excel而定,第一个是旧版本,下面那个是7到10版
1 打开excel。
我的excellink已经安装完的摸样,注意工具条上多了个加载项,这是安装第一个的效果
第二个的效果
点击“文件”
注意左侧下面有个选项
点击选项,再点击加载项
将管理设置为excel加载项点击转到
弹出加载宏窗口
点击浏览
,
这时你之前的路径就有用了,选之,确定即可
下次打开就有加载项了
用法
这里说明一下,如果是第一个加载宏,当你下一次打开excel时,会非常慢,因为matlab插件的缘故,这时须按你的意愿设置,一般默认第一项是打勾的
我有时用excel就用不着matlab,于是第一个我就没打勾
startmatlab,即打开matlab窗口如图,是只有命令窗口的简洁版
putmatrix,放一个矩阵
getmatrix,得到一个已经存储的矩阵。
今天开始学习在word和excel环境下学习matlab首先学习notebook的使用显示notebook的安装,用到下列指令:notebook –setup在matlab7.0下按理应该是先提示你选择matlab的版本的,但是,在2010a下,貌似就直接显示安装成功了,这个暂且不提。
既然安装好了,那么,就尝试启动并使用notebook吧!进入word,然后新建,选择本机上的模板,然后选择M-book于是文档新建完成,标题中多了notebook菜单。
或者也可以在matlab环境下使用指令notebook。
注意把安全性先设为中。
接下来就开始进行相关操作了!word中matlab的程序块称为元胞在word文档中编写好元胞以后,直接按组合键alt+D定义,然后再用ctrl+enter执行便可以得到运算结果。
此外,还可以通过个人爱好来对元胞格式进行设置。
使用notebook opinions就可以对元胞格式进行设置了。
其中可以设置的项目有:1.输出的数据类型2.输出数据间隔3.图形嵌入4.潜入图形尺寸以下的表格式M-book的默认元胞设置表格1 m-book的默认元胞组织最后再来了解一下notebook菜单功能选项几个比较常用的功能1.定义“自初始化元胞”2.定义计算区3.定义“元胞组”4.元胞图形输出拨动控制开关设置5.元胞的循环运行6.撤销元胞的定义在word下的matlab操作就先了解到这里,接着我们了解一下excel在matlab中的操作。
首先是excel link的安装在excel中加载宏中选择浏览,在matlab安装文件夹的toolbox/exlink目录中。
然后exlink的工具条就会在excel中显示出来了~~既然设置好了,那么就开始利用这个工具条开始工作吧!在这里首先要提到一下,每次这样设置一下,matlab都会自动启动,要是不想让他自动启动,只需要在excel中输入MLAutoStart("no")就可以了。
电子信息系统设计与仿真报告设计题目GUI模块实现excel文件的处理姓名:学号:201300800128学院:专业:电子信息科学与技术年级2013级2015 年7 月29 日一.负责部分Excel文件数据的读入和显示部分,通过GUI模块上的按钮选择读入程序,并显示在GUI模块上的table上。
二.思路首先要熟悉matlab的基本函数,经过学习,知道了读取.xls文件的函数可以选用xlsread函数,读取文件数据。
GUI的基本构架是在模块上构造自己的界面,我负责数据的读入和显示,所以我选用了一个按钮,功能是打开选取文件,还选用了一个table表格显示数据内容。
之后把代码写入各自的回调函数,即可实现相应功能。
三.调试过程代码如下:(1)PUSHBOTTON1(选取文件)% 设置全局变量global num str%读取文件PromptString = '选择数据文件。
' ;WarningString1 = '文件格式出错。
' ;WarningString2 = '选择的文件不是正确的数据文件。
' ;[ FileName , PathName ] = uigetfile( {'*.xls','excel文件(*.xls)'}, PromptString ) ;if FileName == 0return ;else[TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ;if ~strcmp( FileTypeName, '.xls' ) ;warndlg( WarningString1, '警告', 'modal' ) ;return ;endSaveFile_traindata = fullfile( PathName, FileName );endif isempty( SaveFile_traindata )warndlg( WarningString1, '警告', 'modal' ) ;return ;end%读取文件[num str] = xlsread(SaveFile_traindata,'sheet1');set(handles.uitable1,'data',num(:,:)');%设置全局变量global num str ValueNumtitle1 = str(1,ValueNum);data1 = [2,8,14];data2 =num(:,:);axes(handles.axes1)title(title1)bar(data1,data2);除单一的打开文件内容外,我还添加了文件类型错误提示等,增加GUI界面的人性化,面向使用者更加便利。
MATLAB与EXCEL的链接及其在金融分析中的应用一、MATLAB与EXCEL的链接Excel Link链接方式支持在Excel中直接调用MATLAB命令或函数,整个数据处理过程完全可以在Excel环境中进行,操作简单、快捷、直观。
Excel中对大量独立的不规则数据进行统计与计算,并把结果显示在相应的单元格内,以便于对评价数据进行及时的跟踪与检查。
该计算平台由MATLAB与Excel两个应用程序窗口组成,所以构建计算平台前系统必须安装Excel和MATLAB软件。
平台的构建过程就是Excel Link插件的安装与配置过程,步骤如下:1、运行Excel,单击Excel工具菜单下的加载宏选项,然后在弹出的对话框中单击浏览按钮;2、在浏览对话框中选择MATLAB安装目录\toolbox\excel link中的excllink.xla文件,单击确定按钮;3、返回到加载宏窗口,选择Excel Link 2.2.1 for use with MATLAB复选框,单击确定按钮[3]。
安装完成后Excel Link函数按钮会自动载入Excel的工具栏,MATLAB也会自动启动,以后每次启动Excel,Excel Link与MATLAB都会自动加载与启动。
4、这时候工具栏就出现startmatlab,putmatrix,getmatrix,evalstring 等按钮。
Excel Link函数的运行机制如图所示:图1 Excel link的运行机制Excel link的启动步骤如下图:1、第一步:2、第二步:图3 Excel中加载项窗口3、第三步:图4 Excel加载宏窗口4、第四步:图5 浏览窗口5、第五步:图6 选择加载宏6、第六步:图7 生成Excel link表格二、Excel Link在金融计算中的应用(一)、股票数据的获取登录新浪财经_新浪网/corp/go.php/vMS_MarketHistory/stockid/6013 98.phtml下载工商银行(601398)2014年第一季度的历史交易记录数据,做成excel表格,利用ExcelLink对其进行运算、绘图及回归分析登录新浪财经_新浪网/corp/go.php/vMS_MarketHistory/stockid/ 601857.phtml?year=2014&jidu=1将中国石油(601857)2014年1月1日至2014年6月30日的股价数据保存在Excel中,然后通过Excllink将收盘价保存到MATLAB中。
matlab excel混合编程MATLAB与Excel数据连接及绘图3.1 MATLAB与Excel数据连接EXCEL和MATLAB在数据显示和数值计算上各有优势,EXCEL是商业运用最广泛的工具,非常直观,但是数值编程比较差,而MA TLAB可以弥补这一点,有时在程序开发上需要将两者结合起来,实现两者之间的优势互补,为此MATLAB提供了EXCEL Link连接工具,实现MA TLAB与EXCEL之间的混合编程。
EXCEL Link是一个在Microsoft Windows环境下实现对Microsoft EXCEL和MATLAB 进行链接的插件。
通过对EXCEL和MATLAB 的连接,用户可以在EXCEL的工作空间里,利用EXCEL的宏编程工具,使用MATLAB的数据处理和图形处理功能进行相关操作,同时由EXCEL Link来保证两个工作环境中数据的交换和同步更新。
使用EXCEL Link 时,不必脱离EXCEL环境,而是直接在EXCEL工作区或宏操作中调用MATLAB函数。
EXCEL Link允许在MATLAB和EXCEL之间进行数据交换,在两个功能强大的数学处理、分析与表示平台之间建立无缝连接。
EXCEL作为一个可视化的数据处理环境是进行数组编辑的最佳选择,而MA TLAB则作为数据分析和可视化的引擎。
任何输入到EXCEL环境中的数据都可以直接进入MTA TLAB进行处理,而这一过程完全是“现场”处理的,没有任何中间文件,也不需要进行编程工作。
3.1.1 MATLAB和Excel的接口安装:. Excel Link的安装和和设置首先,在系统中安装Excel软件。
然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示:安装完Excel Link后还需要在Excel中进行一些设置后才能使用。
启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:选中Excel Link项。
如果该项不存在,则通过浏览目录,在目录%MATLAB%toolboxexlink 下找到excllink.xla文件,如下图示,并确定。
选中ExcelLink项并确定后,在Excel中多了一个Excel Link工具条,如下图示:经过以上的设置后就可以开始使用Excel Link了。
其中4个按钮的意义分别如下:startmatlab %启动MATLABputmatrix %将变量输入到MATLABgetmatrix %把MA TLAB的变量输入到EXCELevalstring %执行MA TLAB命令注:Excel中的起始时间与MATLAB的起始时间相差693960天,用户需要将该数据加在MATLAB上,转换为MATLAB的数据。
3.1.2 . ExcelLink管理函数1、ExcelLink连接管理函数按如上设置好后,下次启动excel时会默认启动matlab,要不想在每次启动时都启动matlab,则可以在电子表格中或函数输入框中输入以下命令=MLAutoStart(“no”)这时要启动matlab需手动启动,有三种方法,一种是在excel电子表格中调用MLOpen函数,即输入命令=MLOpen()第二种方法是利用excel的宏工具,在宏对话框中输入Matlabinit,然后单击执行按钮,同样可以启动MATLAB。
第三种方法是按左上按钮"startmatlab"。
下面介绍一下常用的连接、启动和关闭matlab的常用函数:(1)Matlabinit该函数只能在宏子例程中使用。
初始化ExcelLink和启动Matlab进程。
只有在MLAutoStart 函数中使用“no”参数,才需要手动使用Matlabinit来初始化ExcelLink和启动Matlab进程,如果使用参数“yes”,则Matlabinit是自动执行的。
使用语法:Matlabinit(2) MLAutoStart设置自动启动Matlab和ExcelLink。
在工作表中的使用语法:MLAutoStart("yes") MLAutoStart("no")在宏中的使用语法:MLAutoStart "yes"MLAutoStart "no"使用“yes”参数,则当Excel启动时,自动启动Matlab和ExcelLink;如果使用参数“no”,则当Excel启动时,不启动Matlab和ExcelLink。
如果在此之前它们已经启动,则无任何影响。
(3) MLClose终止Matlab进程并删除Matlab工作空间的所有变量。
并通知Excel,Matlab不再运行。
在工作表中的使用语法:MLClose()在宏中的使用语法:MLClose(4) MLOpen启动Matlab进程。
如果Matlab进程已经启动,则MLOpen函数不进行任何操作。
在使用MLClose关闭Matlab进程后使用MLOpen来重新启动Matlab。
在工作表中的使用语法:MLOpen()在宏中的使用语法:MLOpen注释:EXCEL的默认日期数开始与1900年1月1日,而MATLAB 的日期数开始于0000年1月1日。
如果用户使用MATLAB中的日期数计算, 常数693960起关键作用: EXCEL 日期数加上它进入MATLAB,或从MATLAB 日期数中减去它进入EXCEL2. ExcelLink数据管理函数(1) Matlabfcn根据给定的Excel数据执行Matlab命令。
在工作表中使用时的语法: matlabfcn(command,inputs)参数command,Matlab将执行的命令,命令需要写成“command”(使用双引号引起来)的形式。
参数inputs 传给Matlab命令的变长输入参数列表。
列表是包含数据的工作表单元格范围。
函数返回单一数值或者是字符串,结果返回到调用函数的单元格中。
例如matlabfcn(”sum”,B1:B10);把从B1到B10的单元格中数据相加,如下图示:并将结果返回到当前的活动单元格。
即A11,结果如下图。
例:在Matlab中生成12维均匀随机向量aa,利用matlabfcn在Excel中求其分量之和。
(2) Matlabsub根据给定的Excel数据执行Matlab命令,并将结果返回到指定的单元格中。
在工作表中的使用语法:matlabsub(command,edat,inputs)command和inputs参数的与matlabfcn相同。
参数edat,指定返回值写入在工作表中的位置。
如果edat用双引号引起来,则edat必须是单元格地址或范围的名字。
如果参数不用引号引起edat的形式,则通过计算获得矩阵名。
例如:=matlabsub(”sum”,”A1”,B1:B10);把工作表中从单元格B1到B10的数据相加,并将结果返回到单元格A1中。
注意:edat指定的位置不能包含matlabsub所在的位置。
(3)MLAppendMatrix将Excel工作表中的数据追加到Matlab中指定的矩阵中如果该矩阵不存在,则创建矩阵。
在工作表中使用的语法:MLAppendMatrix(var_name,mdat)在宏中使用的语法:MLAppendMatrix var_name,mdat注意要追加的数据维数要和原矩阵中的维数相匹配,否则出错。
例如:MLAppendMatrix(”a”,A1:A2);假设矩阵a是个2行3列的矩阵,如下图:将A1:A2中的数据追加到矩阵后,如下图示成为矩阵的第四列,如下图示。
单元格B1中是字符a,函数MLAppendMatrix(B1,A1:A2)的作用于MLAppendMatrix(”a”,A1:A2)相同。
(4) MLDeleteMatrix删除Matlab空间中指定的矩阵在工作表中使用的语法:MLDeleteMatrix(var_name);在宏中使用的语法:MLDeleteMatrix var_nameVar_name,是要删除的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。
例如,单元格B1中的内容为a,MLDeleteMatrix(B1),则表示删除Matlab工作空间的矩阵a,它等价于MLDeleteMatrix(”a”)(5) MLEvalString将命令(写成字符串的形式)传到Matlab中执行。
在工作表中使用的语法:MLEvalString(command);在宏中使用的语法:MLEvalString command参数command如果是用引号引起来”command”的形式,则是直接指定命令;如果不用引号引起来command的形式,则command必须是包含了命令字符串的工作表的单元格地址或者是范围。
例如:MLEvalString(”b=magic(4)”);表示在Matlab中执行命令b=magic(4);(6) MLGetMatrix将指定的Matlab矩阵写入到Excel工作表中的指定位置。
在工作表中使用的语法:MLGetMatrix(var_name,edat)在宏中使用的语法:MLGetMatrix var_name,edat参数Var_name,是要写入工作表的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。
参数edat指定了矩阵写入工组表的位置。
如果参数是用引号引起”edat”的形式,则是直接指定矩阵名,如果参数不用引号引起edat的形式,则通过计算获得矩阵名。
例如:MLGetMatrix(”a”,”sheet1!B1”);将矩阵a写入工作表sheet1以单元格B1起始的位置,如果a是一个2行3列的矩阵,则矩阵占据sheet1的B1到D2的空间。
如果在A1中有字符串a,则MLGetMatrix(A1,” sheet1!C1”)的作用与MLGetMatrix(”a”,”sheet1!C1”)相同。
函数运行结果如图示。
(7) MLGetVar将MatLab矩阵传送给Excel VBA变量,只能在宏子例程中使用。
使用语法:MLGetVar ML_var_name,VBA_var_name参数ML_var_name是将获取的矩阵名。
如果矩阵名在引号内“ML_var_name”的形式,则直接指定变量名,如果ML_var_name不用引号引起来,则通过计算获得实际矩阵的名字。
参数VBA_var_name,将其Matlab矩阵数据传给的VBA变量名,不用引号将其引起来。