MATLAB与Excel的混合编程e.docx_第1页
MATLAB与Excel的混合编程e.docx_第2页
MATLAB与Excel的混合编程e.docx_第3页
MATLAB与Excel的混合编程e.docx_第4页
MATLAB与Excel的混合编程e.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB与Excel的混合编程有两种方式:l 利用MATLAB提供的Excel Link插件,实现Excel与 MATLAB的数据共享l 利用MATLAB提供的Excel生成器,生成dll组件和VBA代码,dll组件可以进行COM生成器组件相似的操作,VBA代码则可以在Excel的Visual Basic编译器中直接使用,可以保存为插件下面分别介绍这两种方法(一) 通过Excel Link实现 Excel和MATLAB的数据共享1. Excel Link是一个软件插件,它可将Excel与MATLAB进行集成,通过MATLAB与Excel的链接,用户可以在Excel的工作空间中,利用Excel的宏编程功能,使用MATLAB的数据处理和图形处理功能进行相关操作,同时Excel保证MATLAB和Excel工作空间数据的交换和同步更新.使用Excel Link时,不必脱离Excel环境,而直接在Excel的工作区或者宏操作中调用MATLAB函数,Excel提供了11个函数来实现链接和数据操作.2. Excel Link的安装Excel Link对运行环境没有要求,只要能够同时运行MATLAB和Excel即可,大概要200KB的空间,在Windows平台下要求先安装Excel,再安装MATLAB.i. Excel的设置,启动Excel,如下图:首先要打开开发工具选项卡,文件选项自定义功能区,如下图所示,然后在右侧选中开发工具.现在开发工具加载项,打开加载宏窗口,如下图所示:单击浏览按钮,在弹出的路径选择对话框中,选择MATLAB安装目录下的toolboxexlinkexcellink.xla(在这儿要注意了,由于笔者使用的是Excel 2010,所以要选择excllink2007.xlam文件,通过将鼠标放在文件文件上,显示的tips可以看到,如下图)文件,然后单击确定后,返回到加载宏对话框:此时,单击确定按钮,此时Excel Link 将加载了MATLAB,Excel的窗口变化如下图所示:ii. 设置Excel Link的自启动通过MATLAB选项(Preferences)可以打开选项配置窗口.如下图所示,如果不想MATLAB每次在Excel启动时都自动启动,请取消第一个选项,当然也可以通过在数据单元格中输入命令的方式来实现关闭MATLAB的自启动,方法是在Excel的任意一个单元格中输入下面命令:=MLAutoStart(no),然后回车就行了,要注意不要忘了前面有个等号!这该单元格显示的结果是0,也就是说在下次启动时,MATLAB不会随Excel的启动而启动了.该函数将会改变Excel初始化文件中对自启动Excel Link和MATLAB的设置.3. Excel Link的链接管理函数在上面我们已经用到了函数MLAutoStart(),现在讲解下几个函数的用法:MLAutoStart()设置是否自动启动MATLAB,参数可以是no或者yesMATLABinit()初始化Excel Link,并且启动MATLABMLClose()关闭MATLAB进程MLOpen()启动MATLAB进程在上面的命令中,MATLABinit只能以宏命令的方式运行,而其它的3个命令可以作为数据单元函数或者宏命令来执行.宏命令的运行方式是开发工具宏输入宏名执行.如果在设置中没有设置MATLAB随Excel的自启动,而是手动启动,那么在Excel中启动MATLAB,就需要用MATLABinit来初始化Excel Link并且启动MATLAB.MLClose()在保持Excel继续运行的状态下,用来终止MATLAB进程的运行.4. Excel Link的数据管理函数Excel提供了9个数据管理函数,实现MATLAB与Excel之间的数据复制,并可在Excel中执行MATLAB命令.函数函数作用及用法MATLABfcn()对于给定的Excel数据,运行MATLAB命令MATLABsub()对于给定的Excel数据,运行MATLAB命令并指定输出位置MLDeleteMatrix()删除MATLAB矩阵MLEvalString()执行MATLAB命令MLGetMatrix()向Excel数据表中写入MATLAB矩阵的数据内容MLGetVar()向Excel数据表VBA写入MATLAB矩阵的数据内容MLAppendMatrix()向MATLAB空间添加Excel数据表的数据MLPutMatrix()向Excel数据表创建或覆盖MATLAB矩阵MLPutVar()向Excel数据表VBA创建或覆盖MATLAB矩阵值得注意的是,我们能以数据单元函数的形式或者宏命令的形式调用除MLGetVar()和MLPutVar()以外所有的数据处理函数,而MLGetVar()和MLPutVar()函数只能以宏命令的形式被调用.5. Excel Link 使用的注意事项 大小写区分,Excel Link函数名对大小写不区分,而在MATLAB中大小写是区分的; Excel的工作表等通常以+或者=作为起始标记,如=MLPutMatrix(Labels,A4:C4) 大多数Excel Link的函数中有两种定义变量的方式,直接定义和间接定义,将变量用双引号标记即是直接定义,如MLDeleteMatrix(Bonds)即是将MATLAB中的矩阵变量bonds删除,函数中不加双引号的工作区单元地址或者行列名称为间接变量,函数对其指引内容进行操作.工作区单元地址可以包含页表序号,如Sheet3!B1:C11,表示Sheet3中的B1:C11单元格中的数据. 日期,默认的Excel日期是从1990年1月1日开始,而MATLAB的日期是从0000年1月1日开始,因此,在MATLAB中计算使用日期数字,将Excel日期转换为MATLAB日期需要加上常量693960.例如2010年12月13日在Excel中是40525,而在MATLAB中是734485. 建议使用Excel Link的自动计算模式,如果在手动计算模式下使用MLGetMatrix()函数,当在单元格中输入完函数等式时,需要按键执行,而按下键将有可能引起其它工作表函数的重复执行,产生无法预料的后果.设置方法如下:在Excel中文件选项公式计算选项 在打开一个包含Excel L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论