Matlab和Excel混合编程.docx
文本预览下载声明
Matlab和Excel混合编程
2011-07-18 21:26:17| 分类: HYPERLINK /blog/ \l m=0t=1c=fks_084064086082081075092087080095085094080068083086087069087 \o Excel VBA Excel VBA | 标签: |举报 |字号大中小 订阅
MATLAB与Excel的混合编程有两种方式:(1)利用MATLAB提供的Excel Link插件,实现Excel与 MATLAB
的数据共享;(2)利用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。Excel Link的安装步骤如下:(1)启动Excel,选择菜单
栏中的“工具(Tools)”,执行“加载宏”命令;(2)在打开的“加载宏”对话框中单击“浏览”按钮,
选择用户自己的\matlab\toolbox\exlink路径下的excellink.xla文件(可能是隐藏文件),然后单击“确
定”按钮。(3)返回“加载宏”窗口,此时已经选中了“Excel link”选项,单击“确定”按钮;(4)重
新启动Excel就可以看到多一行“Spreadsheet link EX”工具栏。3.设置Excle link的启动方式在启动Excle时,如果不希望同时启动Excel link和Matlab,在Excel数据表单元中输入
“=MLAutoStart(no)”。手动启动Excel link和Matlab,在菜单中选择“宏”,在打开的“宏”对话框中输入“MATLABinit
”,单击“执行”按钮。在Excel环境中启动或终止Excel link和Matlab,在单元格中输入“=MLOpen()”或“=MLClose()”
。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矩阵
下面详细介绍一下它的用法:
(1) Matlabfcn根据给定的Excel数据执行Matlab命令。在工作表中使用时的语法:matlabfcn(command, inputs)参数command,Matlab将执行的命令,命令需要写成“command”(使用双引号引起来)的形式。参
数 inputs 传给Matlab命令的变长输入参数列表。列表是包含数据的工作表单元格范围。函数返回单一
数值或者是字符串,结果返回到调用函数的单元格中。例如matlabfcn(”sum”,B1:B10);把从B1到B10的单元格中数据相加。
(2) Matlabsub根据给定的Excel数据执行Matlab命令,并将结果返回到指定的单元格中。在工作表中的使用语法:matlabsub(command,edat,inputs)command和inputs参数的与
显示全部