Matlab和Excel混合编程.pdf
《Matlab和Excel混合编程.pdf》由会员分享,可在线阅读,更多相关《Matlab和Excel混合编程.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Matlab 和 Excel 混合编程 2011-07-18 21:26:17|分类:Excel VBA|标签:|举报|字号大中小 订阅 MATLAB 与 Excel 的混合编程有两种方式:(1)利用 MATLAB 提供的Excel Link 插件,实现 Excel 与 MATLAB 的数据共享;(2)利用 MATLAB 提供的 Excel 生成器,生成 dll 组件和 VBA 代码,dll 组件可以进行 COM 生成器 组件相似的操作,VBA 代码则可以在 Excel 的 Visual Basic 编译器中直接使用,可以保存为插件.第一种方法:通过 Excel Link 实现 Excel 和
2、 MATLAB 的数据共享 1.Excel Link 是一个软件插件,它可将 Excel 与 MATLAB 进行集成,通过 MATLAB 与 Excel 的链接,用户可 以在 Excel 的工作空间中,利用 Excel 的宏编程功能,使用 MATLAB的数据处理和图形处理功能进行相关操 作,同时 Excel 保证 MATLAB 和 Excel 工作空间数据的交换和同步更新。使用 Excel Link 时,不必脱离 Excel 环境,而直接在 Excel 的工作区或者宏操作中调用 MATLAB 函数,Excel 提供了 11 个函数来实现链接和数据 操作。2.Excel Link 的安装 Exc
3、el Link 对运行环境没有要求,只要能够同时运行 MATLAB 和Excel 即可,大概要 200KB 的空间,在 Windows 平台下要求先安装 Excel,再安装 MATLAB。Excel Link的安装步骤如下:(1)启动 Excel,选择菜单 栏中的“工具(Tools)”,执行“加载宏”命令;(2)在打开的“加载宏”对话框中单击“浏览”按钮,选择用户自己的matlabtoolboxexlink 路径下的 excellink.xla 文件(可能是隐藏文件),然后单击“确 定”按钮。(3)返回“加载宏”窗口,此时已经选中了“Excel link”选项,单击“确定”按钮;(4)重 新启
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 的数据管理函数 E
5、xcel 提供了 9 个数据管理函数,实现 MATLAB 与 Excel 之间的数据复制,并可在 Excel 中执行 MATLAB 命 令。MATLABfcn()对于给定的 Excel 数据,运行 MATLAB 命令 MATLABsub()对于给定的 Excel 数据,运行 MATLAB 命令并指定输出位置 MLDeleteMatrix()删除 MATLAB 矩阵 MLEvalString()执行 MATLAB 命令 MLGetMatrix()向 Excel 数据表中写入 MATLAB 矩阵的数据内容 MLGetVar()向 Excel 数据表 VBA 写入 MATLAB 矩阵的数据内容 ML
6、AppendMatrix()向 MATLAB 空间添加 Excel 数据表的数据 MLPutMatrix()向 Excel 数据表创建或覆盖 MATLAB 矩阵 MLPutVar()向 Excel 数据表 VBA 创建或覆盖 MATLAB 矩阵 下面详细介绍一下它的用法:(1)Matlabfcn 根据给定的 Excel 数据执行 Matlab 命令。在工作表中使用时的语法:matlabfcn(command,inputs)参数 command,Matlab 将执行的命令,命令需要写成“command”(使用双引号引起来)的形式。参 数 inputs 传给 Matlab 命令的变长输入参数列表。
7、列表是包含数据的工作表单元格范围。函数返回单一 数值或者是字符串,结果返回到调用函数的单元格中。例如 matlabfcn(”sum”,B1:B10);把从 B1 到 B10 的单元格中数据相加。(2)Matlabsub 根据给定的 Excel 数据执行 Matlab 命令,并将结果返回到指定的单元格中。在工作表中的使用语法:matlabsub(command,edat,inputs)command 和 inputs 参数的与 matlabfcn 相同。参数 edat,指定返回值写入在工作表中的位置。如果 edat 用双引号引起来,则 edat 必须是单元格地址或范围的名字。如果参数不用引号引起
8、 edat 的形式,则 通过计算获得矩阵名。例如:matlabsub(”sum”,”A1”,B1:B10);把工作表中从单元格B1 到 B10 的数据相加,并将结果返 回到单元格 A1 中。注意:edat 指定的位置不能包含 matlabsub 所在的位置。(3)MLAppendMatrix 将 Excel 工作表中的数据追加到 Matlab 中指定的矩阵中如果该矩阵不存在,则创建矩阵。在工作表中使用的语法:MLAppendMatrix(var_name,mdat)在宏中使用的语法:MLAppendMatrix var_name,mdat 注意要追加的数据维数要和原矩阵中的维数相匹配,否则出错
9、。例如: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_name Var_name,是要删除的矩阵名,如果矩阵名在引号
10、内“var_name”的形式,则直接指定变量名,如 果 var_name 不用引号引起来,则通过计算获得实际矩阵的名字。例如,单元格 B1 中的内容为 a,MLDeleteMatrix(B1),则表示删除Matlab 工作空间的矩阵 a,它等价 于 MLDeleteMatrix(a)(5)MLEvalString 将命令(写成字符串的形式)传到 Matlab 中执行。在工作表中使用的语法:MLEvalString(command);在宏中使用的语法:MLEvalString command 参数 command 如果是用引号引起来”command”的形式,则是直接指定命令;如果不用引号引起来
11、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 不用引号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab Excel 混合 编程
限制150内