MATLAB与Excel的混合编程e

上传人:M****1 文档编号:507427279 上传时间:2023-09-26 格式:DOCX 页数:9 大小:814.03KB
返回 下载 相关 举报
MATLAB与Excel的混合编程e_第1页
第1页 / 共9页
MATLAB与Excel的混合编程e_第2页
第2页 / 共9页
MATLAB与Excel的混合编程e_第3页
第3页 / 共9页
MATLAB与Excel的混合编程e_第4页
第4页 / 共9页
MATLAB与Excel的混合编程e_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《MATLAB与Excel的混合编程e》由会员分享,可在线阅读,更多相关《MATLAB与Excel的混合编程e(9页珍藏版)》请在金锄头文库上搜索。

1、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的工作空间中,利用Exce

2、l的宏编程功能,使用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,如下图:首先要打开开发工具选项卡,文件选项自定义功能

3、区,如下图所示,然后在右侧选中开发工具.现在开发工具加载项,打开加载宏窗口,如下图所示:单击浏览按钮,在弹出的路径选择对话框中,选择MATLAB安装目录下的toolboxexlinkexcellink.xla(在这儿要注意了,由于笔者使用的是Excel 2010,所以要选择excllink2007.xlam文件,通过将鼠标放在文件文件上,显示的tips可以看到,如下图)文件,然后单击确定后,返回到加载宏对话框:此时,单击确定按钮,此时Excel Link 将加载了MATLAB,Excel的窗口变化如下图所示:ii. 设置Excel Link的自启动通过MATLAB选项(Preferences)

4、可以打开选项配置窗口.如下图所示,如果不想MATLAB每次在Excel启动时都自动启动,请取消第一个选项,当然也可以通过在数据单元格中输入命令的方式来实现关闭MATLAB的自启动,方法是在Excel的任意一个单元格中输入下面命令:=MLAutoStart(no),然后回车就行了,要注意不要忘了前面有个等号!这该单元格显示的结果是0,也就是说在下次启动时,MATLAB不会随Excel的启动而启动了.该函数将会改变Excel初始化文件中对自启动Excel Link和MATLAB的设置.3. Excel Link的链接管理函数在上面我们已经用到了函数MLAutoStart(),现在讲解下几个函数的用

5、法:MLAutoStart()设置是否自动启动MATLAB,参数可以是no或者yesMATLABinit()初始化Excel Link,并且启动MATLABMLClose()关闭MATLAB进程MLOpen()启动MATLAB进程在上面的命令中,MATLABinit只能以宏命令的方式运行,而其它的3个命令可以作为数据单元函数或者宏命令来执行.宏命令的运行方式是开发工具宏输入宏名执行.如果在设置中没有设置MATLAB随Excel的自启动,而是手动启动,那么在Excel中启动MATLAB,就需要用MATLABinit来初始化Excel Link并且启动MATLAB.MLClose()在保持Exce

6、l继续运行的状态下,用来终止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写

7、入MATLAB矩阵的数据内容MLAppendMatrix()向MATLAB空间添加Excel数据表的数据MLPutMatrix()向Excel数据表创建或覆盖MATLAB矩阵MLPutVar()向Excel数据表VBA创建或覆盖MATLAB矩阵值得注意的是,我们能以数据单元函数的形式或者宏命令的形式调用除MLGetVar()和MLPutVar()以外所有的数据处理函数,而MLGetVar()和MLPutVar()函数只能以宏命令的形式被调用.5. Excel Link 使用的注意事项 大小写区分,Excel Link函数名对大小写不区分,而在MATLAB中大小写是区分的; Excel的工作表等

8、通常以+或者=作为起始标记,如=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中

9、计算使用日期数字,将Excel日期转换为MATLAB日期需要加上常量693960.例如2010年12月13日在Excel中是40525,而在MATLAB中是734485. 建议使用Excel Link的自动计算模式,如果在手动计算模式下使用MLGetMatrix()函数,当在单元格中输入完函数等式时,需要按键执行,而按下键将有可能引起其它工作表函数的重复执行,产生无法预料的后果.设置方法如下:在Excel中文件选项公式计算选项 在打开一个包含Excel Link 函数的Excel数据表时,Excel会自动从上住下,从左到右执行这些函数,所有可能出现如#command!或者#nonexist等Excel错误提示,只老需要关闭所有的MATLAB图形窗口,然后按键和键重新单步执行单元格里的函数就可以了.(二) 通过Excel生成器略

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号