数学建模社区-数学中国

标题: Matlab Excel Link工具箱下载 [打印本页]

作者: leehaolh    时间: 2011-11-20 21:12
标题: Matlab Excel Link工具箱下载
之前在网上找了很久都没找到Matlab Excel Link工具箱的下载地址,特来向强大的数学中国求助,有这个工具箱的朋友麻烦告诉我一声,感激不尽。
作者: 蛇目铜鱼    时间: 2012-5-3 13:39
谢楼主啊啊啊啊啊啊啊
作者: hitzhaowenqiang    时间: 2012-6-22 22:17

作者: 月白风    时间: 2012-6-24 17:13

作者: 英杰1990    时间: 2012-7-8 22:47
很好的文件,希望能够分享更多
作者: 『冰·学不会』    时间: 2012-7-15 15:16
很好的东西就要共享哈
作者: 墨雨金岚    时间: 2012-7-17 11:16
同求同求!!
作者: 万法归一    时间: 2012-7-27 11:27
怎么下啊,在哪啊
作者: liuxingwuye    时间: 2012-7-27 20:58
看看,应该是好东西啊,呵呵、、、、、
作者: 碎汞小时光    时间: 2012-8-20 14:20
表示需要~~~~~~~~~~~
作者: scolield    时间: 2012-8-24 20:46
急需啊,求哪位大神分享啊
作者: 闪舞Ice☆★~    时间: 2012-8-26 12:50
怎么下载啊
作者: hzs2012    时间: 2012-8-26 13:26
是说spreadsheet link ex么?这个是Matlab自带的。。。
作者: 向海涛    时间: 2012-11-3 15:59
好东西~
作者: y375011311    时间: 2013-1-28 17:07
怎么下载啊
作者: 似曾相识燕归来    时间: 2013-4-29 12:36
我也需要啊
作者: 幸福有些迷惘    时间: 2013-5-6 19:08
可以下吗。。。。。。。。。。。。
作者: sharklionztj    时间: 2013-6-7 22:05
在哪里下载呢?
作者: zhaolingyi33    时间: 2013-6-10 15:26
同求啊!!!找不到呢!
作者: 未知的萤火    时间: 2013-7-31 16:46
很好的文件,希望能够分享更多
作者: 给力然    时间: 2013-8-21 19:41
没有地址啊?
作者: 给力然    时间: 2013-8-21 19:42
地址呢  在哪里啊
作者: victory1    时间: 2013-8-27 22:20
好棒啊~~~~~~~~~~~~~~~~~·
作者: madio    时间: 2013-8-28 22:05
用Excel Link实现Excel与Matlab混合编程
Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件。通过连接Excel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图形处理等功能,不需要脱离Excel环境。同时由Excel Link来保证两个工作环境中的数据交换和同步更新。

1. Excel Link的安装和和设置
首先,在系统中安装Excel软件。然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示:

安装完Excel Link后还需要在Excel中进行一些设置后才能使用。
启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:

选中Excel Link项。如果该项不存在,则通过浏览目录,在目录%MATLAB%toolboxexlink下找到excllink.xla文件,如下图示,并确定。

选中ExcelLink项并确定后,在Excel中多了一个Excel Link工具条,如下图示:

经过以上的设置后就可以开始使用Excel Link了。
2. ExcelLink连接管理函数
(1) Matlabinit
该函数只能在宏子例程中使用。初始化ExcelLink和启动Matlab进程。只有在MLAutoStart函数中使用“no”参数,才需要手动使用Matlabinit来初始化ExcelLink和启动Matlab进程,
如果使用参数“yes”,则Matlabinit是自动执行的。
使用语法:Matlabinit

(2) MLAutoStart
设置自动启动Matlab和ExcelLink。
在工作表中的使用语法:
MLAutoStart("yes")
MLAutoStart("no")
在宏中的使用语法:
MLAutoStart "yes"
MLAutoStart "no"
使用“yes”参数,则当Excel启动时,自动启动Matlab和ExcelLink;如果使用参数“no”,则当Excel启动时,不启动Matlab和ExcelLink。如果在此之前它们已经启动,则无任何影响。

(3) MLClose
终止Matlab进程并删除Matlab工作空间的所有变量。并通知Excel,Matlab不再运行。
在工作表中的使用语法:
MLClose()
在宏中的使用语法:
MLClose
(4) MLOpen
启动Matlab进程。如果Matlab进程已经启动,则MLOpen函数不进行任何操作。在使用MLClose关闭Matlab进程后使用MLOpen来重新启动Matlab。
在工作表中的使用语法:
MLOpen()
在宏中的使用语法:
MLOpen

3. ExcelLink数据管理函数
(1) Matlabfcn
根据给定的Excel数据执行Matlab命令。
在工作表中使用时的语法:
  matlabfcn(command, inputs)
参数command,Matlab将执行的命令,命令需要写成“command”(使用双引号引起来)的形式。
参数 inputs 传给Matlab命令的变长输入参数列表。列表是包含数据的工作表单元格范围。
函数返回单一数值或者是字符串,结果返回到调用函数的单元格中。
例如matlabfcn(”sum”,B1:B10);把从B1到B10的单元格中数据相加,如下图示:

并将结果返回到当前的活动单元格。即A11,结果如下图。

(2) Matlabsub
根据给定的Excel数据执行Matlab命令,并将结果返回到指定的单元格中。
在工作表中的使用语法:
matlabsub(command,edat,inputs)
command和inputs参数的与matlabfcn相同。
参数edat,指定返回值写入在工作表中的位置。如果edat用双引号引起来,则edat必须是单元格地址或范围的名字。如果参数不用引号引起edat的形式,则通过计算获得矩阵名。
例如:matlabsub(”sum”,”A1”,B1:B10);把工作表中从单元格B1到B10的数据相加,并将结果返回到单元格A1中。
注意:edat指定的位置不能包含matlabsub所在的位置。
(3) MLAppendMatrix
将Excel工作表中的数据追加到Matlab中指定的矩阵中如果该矩阵不存在,则创建矩阵。
在工作表中使用的语法:
MLAppendMatrix(var_name,mdat)
在宏中使用的语法:
MLAppendMatrix 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_name
Var_name,是要删除的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。
例如,单元格B1中的内容为a,MLDeleteMatrix(B1),则表示删除Matlab工作空间的矩阵a,它等价于MLDeleteMatrix(”a”)
(5) MLEvalString
将命令(写成字符串的形式)传到Matlab中执行。
在工作表中使用的语法:
MLEvalString(command);
在宏中使用的语法:
MLEvalString command
参数command如果是用引号引起来”command”的形式,则是直接指定命令;如果不用引号引起来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不用引号引起来,则通过计算获得实际矩阵的名字。
参数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矩阵传送给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", DataJ
End Sub
表示将Matlab矩阵J的数据写入到VBA变量DataJ中。
(8) MLPutMatrix
用指定位置的Excel工作表中的数据,创建或者覆盖Matlab矩阵。
在工作表中使用的语法:
MLPutMatrix(var_name,mdat)
在宏中使用的语法:
MLPutString var_name,mdat
参数var_name是将有被创建或者被覆盖的矩阵名。如果指定的矩阵不存在,则创建该矩阵,如果矩阵已经存在,则覆盖该矩阵。
参数mdat,指定工作表中的位置。
例如:工作表中有A1到C2的数据,使用函数MLPutMatrix(”c”,A1:C2),则可以将这些数据写到Matlab矩阵c中,如下图示。

注意:如果修改工作表中的数据,则Matlab中的矩阵相应发生变化。如果把数据剪切到别的地方,如D1到F2,则函数MLPutMatrix(”c”,A1:C2)会自动更改为MLPutMatrix(”c”,D1:F2)
(9) MLPutVar
使用VBA变量的数据创建或者覆盖Matlab 矩阵。只能在宏子例程中使用。
使用语法:
MLPutVar ML_var_name,VBA_var_name
参数ML_var_name是将被创建或覆盖的矩阵名。如果矩阵名在引号内“ML_var_name”的形式,则直接指定变量名,如果ML_var_name不用引号引起来,则通过计算获得实际矩阵的名字。
参数VBA_var_name,将其数据传给Matlab矩阵的VBA变量名,不用引号将其引起来。
如果VBA_var_name变量包含字符串的数据,则输出到Matlab为元胞数组格式。
例如:
Sub Put()
MLPutVar "K", DataK
End Sub
用VBA变量DataK中的数据创建或着覆盖Matlab矩阵K。
4. 补充使用Excel Link的注意事项
(1) Excel工作表通常以“=”作为起始标记,例如=matlabfcn(”sum”,B1:B10);
(2) 大多数的Excel Link函数中有两种定义变量的方式:直接定义,即将变量用双引号标记则是直接定义变量,例如MLGetMatrix(”bonds”,”sheet1!C1”),其中bonds是直接定义的变量;间接定义,函数中的不用双引号的工作表单元地址或行列名称被看作是间接变量,函数对其指引的内容进行操作。工作表单元地址可以包含页表序号,例如MLDeleteMatrix(B1);单元格B1中的内容为a,则相当于执行MLDeleteMatrix(”a”);
(3) 建议使用Excel Link的自动计算模式。如果在手动计算模式下使用MLGetMatrix函数,当在单元格中输入完函数等式时,需要按F9键执行,而按下F9键将有可能引起其他工作表函数的重复执行,产生不可预料的后果。设置Excel Link自动计算模式方法如下:在Excel“工具”菜单的“选项”,选择重新计算标签,图4.2.13。
(4) 如果需要在工作表中重新计算Excel Link函数,最好按F2键和回车键单步执行每个函数。
(5) 如果在MLGetMatrix函数中使用了单元的直接地址,那么当删除了行或列或者将函数从其他单元复制到新的单元后,一定要重新修改地址。Excel Link不能自动改变MLGetMatrix中的地址。
(6) 在打开一个包含ExcelLink函数的Excel数据表的时候,Excel会自动从上到下,从左到右地执行这些函数,所有有可能出现如“#COMMAND!”或“#NONEXIST”等Excel错误提示,只需关闭所有Matlab图形窗口,然后按F2键并回车重新单步执行单元格里地函数就可以了。

5. 在工作表和在宏中使用ExcelLink的例子
例1 :(在工作表中使用ExcelLink)如下图所示:

使用mlopen()函数启动Matlab,
使用mlevalstring("load census")载入matlab自带的数据文件census,其中包含矩阵cdate和pop。
使用mlgetmatrix("cdate","E1"),将Matlab空间的矩阵cdata写入到工作表中以E1开始的位置;
mlgetmatrix("pop","F1");将Matlab空间的矩阵pop写入到工作表中以F1开始的位置;
运行结果如下图所示:

mlputmatrix("x",E1:E21)
mlputmatrix("y",F1:F21)
将E1到E21中的数据以及F1到F21中的数据分别写入到Matlab空间的矩阵变量x和y中。
mlevalstring("z=x-mean(x)./std(x)")
mlevalstring("[p2,s2]=polyfit(z,y,2)")
mlevalstring("[pop2,de12]=polyval(p2,z,s2)")
根据所给的数据拟合多项式并进行偏差计算。
mlevalstring("plot(x,y,'+',x,pop2,'g-',…
x,pop2+2*del2,'r:',x,pop2-2*del2,'r:')")
绘出离散点、拟合曲线图及偏差曲线图,结果如下图示:

mlclose();
关闭Matlab。
例2:在宏中使用Excel Link
新建一个Excel工作表,打开Visual Basic编辑器,操作如下图示:

然后在工程管理器中插入模块,如下图:

在模块代码区域写下如下代码,如下图:

Function excellinktest()
MLOpen
mlevalstring "load census"
mlgetmatrix "cdate", "E1"
mlgetmatrix "pop", "F1"
mlputmatrix "x", Range("E1:E21")
mlputmatrix "y", Range("F1:F21")
Matlabrequest
mlevalstring "z=(x-mean(x))./std(x)"
mlevalstring "[p2,s2]=polyfit(z,y,2)"
mlevalstring "[pop2,del2]=polyval(p2,z,s2)"
mlevalstring "plot(x,y,'+',x,pop2,'g-',x,pop2+2*del2,'r:',x,pop2-2*del2,'r:')"
End Function

选中模块1,在“工具”菜单,“引用”选项,如下图示。

弹出引用对话框,选择Excel Link,如下图:

确定后,即可运行该程序,结果与例1相同。



作者: 叶冯俊    时间: 2013-8-31 16:44
怎么下载不了呀?求大神解释!!!
作者: 陌上,烟雨遥    时间: 2013-12-25 08:58

作者: riverdarda    时间: 2014-1-5 10:06
谢谢分享,等了一天,终于可以下了
作者: 东方小四    时间: 2014-1-12 16:44
e,where how to download
作者: 樹皮♂    时间: 2014-1-23 15:29
感激不尽,谢谢楼主分享!!!
作者: qq346323452    时间: 2014-1-24 17:43
看看哈,用用看哈。。。
作者: castlekudu    时间: 2014-1-28 21:08
到底有木有excel link工具箱啊,没看到啊
作者: hzh6961    时间: 2014-2-17 07:48
正是我需要的,非常好好
作者: hzh6961    时间: 2014-2-17 07:49
非常好,正是我需要的,能下载吗?
作者: 风为裳OK    时间: 2014-3-17 16:53
请问在哪下载啊?
作者: 风为裳OK    时间: 2014-3-17 16:55
蛇目铜鱼 发表于 2012-5-3 13:39
谢楼主啊啊啊啊啊啊啊

哪能下载啊?

作者: 十年之约    时间: 2014-5-3 09:00
谢谢啦,大爱楼主,好贴必须顶
作者: younger⑦    时间: 2014-5-6 19:58
谢谢楼主啦
作者: gaoning623    时间: 2015-2-7 09:19
我怎么看不到有什么


作者: orz3399    时间: 2016-1-14 14:12
同求同求~~谢谢

作者: William轩轩    时间: 2016-7-11 17:20
下载地址在哪呢??????

作者: 数模渣渣    时间: 2016-7-22 16:15
啊啊啊啊

作者: Arc.YouWe    时间: 2017-8-18 14:05
有资源吗?求分享啊。。。

作者: 糖水    时间: 2017-9-1 18:36
需要加一!

作者: Yuehanhuasheng    时间: 2018-1-29 15:13
所以……应该在哪里下载呀





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5