matlab与excel连接matlab画图

上传人:新** 文档编号:496992357 上传时间:2022-08-30 格式:DOC 页数:38 大小:771KB
返回 下载 相关 举报
matlab与excel连接matlab画图_第1页
第1页 / 共38页
matlab与excel连接matlab画图_第2页
第2页 / 共38页
matlab与excel连接matlab画图_第3页
第3页 / 共38页
matlab与excel连接matlab画图_第4页
第4页 / 共38页
matlab与excel连接matlab画图_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《matlab与excel连接matlab画图》由会员分享,可在线阅读,更多相关《matlab与excel连接matlab画图(38页珍藏版)》请在金锄头文库上搜索。

1、文档供参考,可复制、编制,期待您的好评与关注! 金融数值计算与应用软件讲义 第3章 MATLAB与Excel数据连接及绘图3.1 MATLAB与Excel数据连接EXCEL和MATLAB在数据显示和数值计算上各有优势,EXCEL是商业运用最广泛的工具,非常直观,但是数值编程比较差,而MATLAB可以弥补这一点,有时在程序开发上需要将两者结合起来,实现两者之间的优势互补,为此MATLAB提供了EXCEL Link连接工具,实现MATLAB与EXCEL之间的混合编程。 EXCEL Link是一个在Microsoft Windows环境下实现对Microsoft EXCEL和MATLAB 进行链接的

2、插件。通过对EXCEL和MATLAB 的连接,用户可以在EXCEL的工作空间里,利用EXCEL的宏编程工具,使用MATLAB的数据处理和图形处理功能进行相关操作,同时由EXCEL Link来保证两个工作环境中数据的交换和同步更新。使用EXCEL Link 时,不必脱离EXCEL环境,而是直接在EXCEL工作区或宏操作中调用MATLAB函数。 EXCEL Link允许在MATLAB和EXCEL之间进行数据交换,在两个功能强大的数学处理、分析与表示平台之间建立无缝连接。 EXCEL作为一个可视化的数据处理环境是进行数组编辑的最佳选择,而MATLAB则作为数据分析和可视化的引擎。任何输入到EXCEL

3、环境中的数据都可以直接进入MTATLAB进行处理,而这一过程完全是“现场”处理的,没有任何中间文件,也不需要进行编程工作。3.1.1 MATLAB和Excel的接口安装:. Excel Link的安装和和设置首先,在系统中安装Excel软件。然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示:安装完Excel Link后还需要在Excel中进行一些设置后才能使用。启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:选中Excel Link项。如果该项不存在,则通过浏览目录,在目录MATLABtoo

4、lboxexlink下找到excllink.xla文件,如下图示,并确定。选中ExcelLink项并确定后,在Excel中多了一个Excel Link工具条,如下图示:经过以上的设置后就可以开始使用Excel Link了。其中4个按钮的意义分别如下:startmatlab %启动MATLABputmatrix %将变量输入到MATLABgetmatrix %把MATLAB的变量输入到EXCELevalstring %执行MATLAB命令注:Excel中的起始时间与MATLAB的起始时间相差693960天,用户需要将该数据加在MATLAB上,转换为MATLAB的数据。3.1.2 . ExcelL

5、ink管理函数1、ExcelLink连接管理函数按如上设置好后,下次启动excel时会默认启动matlab,要不想在每次启动时都启动matlab,则可以在电子表格中或函数输入框中输入以下命令=MLAutoStart(“no”)这时要启动matlab需手动启动,有三种方法,一种是在excel电子表格中调用MLOpen函数,即输入命令=MLOpen()第二种方法是利用excel的宏工具,在宏对话框中输入Matlabinit,然后单击执行按钮,同样可以启动MATLAB。第三种方法是按左上按钮startmatlab。 下面介绍一下常用的连接、启动和关闭matlab的常用函数:(1) Matlabini

6、t该函数只能在宏子例程中使用。初始化ExcelLink和启动Matlab进程。只有在MLAutoStart函数中使用“no”参数,才需要手动使用Matlabinit来初始化ExcelLink和启动Matlab进程,如果使用参数“yes”,则Matlabinit是自动执行的。使用语法:Matlabinit(2) MLAutoStart设置自动启动Matlab和ExcelLink。在工作表中的使用语法:MLAutoStart(yes)MLAutoStart(no)在宏中的使用语法:MLAutoStart yesMLAutoStart no使用“yes”参数,则当Excel启动时,自动启动Matla

7、b和ExcelLink;如果使用参数“no”,则当Excel启动时,不启动Matlab和ExcelLink。如果在此之前它们已经启动,则无任何影响。(3) MLClose终止Matlab进程并删除Matlab工作空间的所有变量。并通知Excel,Matlab不再运行。在工作表中的使用语法:MLClose()在宏中的使用语法:MLClose(4) MLOpen启动Matlab进程。如果Matlab进程已经启动,则MLOpen函数不进行任何操作。在使用MLClose关闭Matlab进程后使用MLOpen来重新启动Matlab。在工作表中的使用语法:MLOpen()在宏中的使用语法:MLOpen 注

8、释:EXCEL的默认日期数开始与1900年1月1日,而MATLAB 的日期数开始于0000年1月1日。 如果用户使用MATLAB中的日期数计算, 常数693960起关键作用: EXCEL日期数加上它进入MATLAB,或从MATLAB 日期数中减去它进入EXCEL 2. ExcelLink数据管理函数(1) Matlabfcn根据给定的Excel数据执行Matlab命令。在工作表中使用时的语法:matlabfcn(command, inputs)参数command,Matlab将执行的命令,命令需要写成“command”(使用双引号引起来)的形式。参数 inputs 传给Matlab命令的变长输

9、入参数列表。列表是包含数据的工作表单元格范围。函数返回单一数值或者是字符串,结果返回到调用函数的单元格中。例如matlabfcn(”sum”,B1:B10);把从B1到B10的单元格中数据相加,如下图示:并将结果返回到当前的活动单元格。即A11,结果如下图。例:在Matlab中生成12维均匀随机向量aa,利用matlabfcn在Excel中求其分量之和。(2) Matlabsub根据给定的Excel数据执行Matlab命令,并将结果返回到指定的单元格中。在工作表中的使用语法:matlabsub(command,edat,inputs)command和inputs参数的与matlabfcn相同。

10、参数edat,指定返回值写入在工作表中的位置。如果edat用双引号引起来,则edat必须是单元格地址或范围的名字。如果参数不用引号引起edat的形式,则通过计算获得矩阵名。例如:=matlabsub(”sum”,”A1”,B1:B10);把工作表中从单元格B1到B10的数据相加,并将结果返回到单元格A1中。注意:edat指定的位置不能包含matlabsub所在的位置。(3)MLAppendMatrix将Excel工作表中的数据追加到Matlab中指定的矩阵中如果该矩阵不存在,则创建矩阵。在工作表中使用的语法:MLAppendMatrix(var_name,mdat)在宏中使用的语法:MLApp

11、endMatrix 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

12、_nameVar_name,是要删除的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。例如,单元格B1中的内容为a,MLDeleteMatrix(B1),则表示删除Matlab工作空间的矩阵a,它等价于MLDeleteMatrix(”a”)(5) MLEvalString将命令(写成字符串的形式)传到Matlab中执行。在工作表中使用的语法:MLEvalString(command);在宏中使用的语法:MLEvalString command参数command如果是用引号引起来”command”的形式,则

13、是直接指定命令;如果不用引号引起来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不

14、用引号引起来,则通过计算获得实际矩阵的名字。参数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

15、矩阵传送给Excel VBA变量,只能在宏子例程中使用。使用语法:MLGetVar ML_var_name,VBA_var_name参数ML_var_name是将获取的矩阵名。如果矩阵名在引号内“ML_var_name”的形式,则直接指定变量名,如果ML_var_name不用引号引起来,则通过计算获得实际矩阵的名字。参数VBA_var_name,将其Matlab矩阵数据传给的VBA变量名,不用引号将其引起来。例如:Sub Fetch()MLGetVar J, DataJEnd Sub表示将Matlab矩阵J的数据写入到VBA变量DataJ中。(8) MLPutMatrix用指定位置的Excel工作表中的数据,创建或者覆盖Matlab矩阵。在工作表中使用的语法:MLPutMatrix(var_name,mdat)在宏中使用的语法:MLPutString var_name,mdat参数var_name是将有被创建或者被覆盖的矩阵名。如果指定的矩阵不存在,则创建该矩阵,如果矩阵已经存在,则覆盖该矩阵。参数mdat,指定工作表中的位置。例如:工作表中有A1到C2的数据,使用函数MLPutMatrix(”c

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

当前位置:首页 > 行业资料 > 国内外标准规范

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