ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:47KB ,
资源ID:9010054      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9010054.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(Excel与Matlab的数据交互.doc)为本站上传会员【pc****0】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Excel与Matlab的数据交互.doc

1、Excel与Matlab的数据交互 假设列举十只股票,算其五日平均线,平均股价,标准差...等,如果用Excel Link的话,可将资料由Excel 传给Matlab处理,再将结果送回excel 中我们指定的位置1)开启 Microsoft excel . 2)Tools\Add-Ins\Browse\toolbox\exlink\excllink.xla    Click OK.    是指Matlab的根目录,会依你的安装路径,及版本不同,而有所不同. 3)Tools\Add-Ins,核选ExcelLink 2.2.2for use with MAT

2、LAB ,then Click OK.(版本不一定相同) 4)这时你会发现excel 里,多了Matlab Command Window(命令视窗),这儿就是你下命给Matlab的地方. 5)另外在excel 里,也多了Excel Link toolbar.a)startmatlab b)putmatrix c)getmatrix d)evalstring 6)以后开启excel就会自动开启matlab,如果觉得不便,可在excel命令栏输入=MLAutoStart("no")按Enter解除自动联结,要使用matlab时,再按左上按钮"startmatlab"即可. 4.exlink

3、 toolbox提供的范例(ExliSamp.xls)有五个例子:      Example 1: Regression and Curve Fitting      Example 2: Interpolating Data      Example 3: Pricing a Stock Option with the Binomial Model      Example 4: Calculating and Plotting the Efficient Frontier of Financial Portfolios      Example 5: Bond Cash Flow

4、 and Time Mapping 5.这次我以example1为例,为方便了解,修改写了regression & curve fitting.xls,内含16个指令.也就是说按了16次enter,就能对Excel Link的功能有了初步的了解.举三个重要指令的语法,说明如下: a)  = MLPutMatrix("data",A4:C28)    把资料送往matlab处理. b)  = MLEvalString("[p,S] = polyfit(1:n,y',5)") 请matlab执行这样的指令,这儿5代表fifth-degree polynomial,如果改个数字图形会变如何?

5、 c)  =MLGetMatrix("y",A5)            把matlab处理完的资料,送回excel指定的栏位. 6.事实上("....."),......就是matlab的命令,当然可以直接在matlab下指令,其执行结果与在excel的执行结果是相同的.所以我又写了regression.m ,供大家比较参考.只是记得要把路径设定好,否则matlab读不到档案的.这里多了两个指令语法  1)xlsread()  2)xlswrite() 在完成上述加载后,ExcelLink和Matlab会在Excel启动时自动启动。如果不希望自动启动,在工作表单元格中输入“=MLA

6、utoStart("no")”即可。 如需手工启动matlab进程,则点击startmatlab按钮或在工作表单元格内输入“=MLOpen()”,如需关闭matlab进程输入“=MLClose()”。 在Excel和Matlab之间保持连接通讯的函数包括: Matlabinit:初始化Excel Link,启动matlab进程 MLAutostart:自动启动matlab进程 MLClose:终止matlab进程 MLOpen:启动Matlab进程  Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件。通过连接E

7、xcel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图形处理等功能,不需要脱离Excel环境。同时由Excel Link来保证两个工作环境中的数据交换和同步更新。 1. Excel Link的安装和和设置首先,在系统中安装Excel软件。然后安装Matlab和Excel Link,用Matlab安装盘开始安装,选择自定义安装中,在选中组件ExcelLink,如下图所示: 安装完Excel Link后还需要在Excel中进行一些设置后才能使用。启动Excel,选择菜单“工具”项下的“加载宏”项,弹出如下对话框:选中Excel Link项。如果该项不

8、存在,则通过浏览目录,在目录%MATLAB%toolboxexlink下找到excllink.xla文件,如下图示,并确定。 选中ExcelLink项并确定后,在Excel中多了一个Excel Link工具条,如下图示: 经过以上的设置后就可以开始使用Excel Link了。 2. ExcelLink连接管理函数 (1) Matlabinit 该函数只能在宏子例程中使用。初始化ExcelLink和启动Matlab进程。只有在MLAutoStart函数中使用“no”参数,才需要手动使用Matlabinit来初始化ExcelLink和启动Matlab进程, 如果使用参数“yes”,则Mat

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

10、Matlab进程并删除Matlab工作空间的所有变量。并通知Excel,Matlab不再运行。 在工作表中的使用语法: MLClose() 在宏中的使用语法: MLClose (4) MLOpen 启动Matlab进程。如果Matlab进程已经启动,则MLOpen函数不进行任何操作。在使用MLClose关闭Matlab进程后使用MLOpen来重新启动Matlab。 在工作表中的使用语法: MLOpen() 在宏中的使用语法: MLOpen 3. ExcelLink数据管理函数 (1) Matlabfcn 根据给定的Excel数据执行Matlab命令。 在工作

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

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

13、将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)的作用于MLAppendM

14、atrix(”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”)

15、 (5) MLEvalString 将命令(写成字符串的形式)传到Matlab中执行。 在工作表中使用的语法: MLEvalString(command); 在宏中使用的语法: MLEvalString command 参数command如果是用引号引起来”command”的形式,则是直接指定命令;如果不用引号引起来command的形式,则command必须是包含了命令字符串的工作表的单元格地址或者是范围。 例如:MLEvalString(”b=magic(4)”); 表示在Matlab中执行命令b=magic(4); (6) MLGetMatrix 将指定的Mat

16、lab矩阵写入到Excel工作表中的指定位置。 在工作表中使用的语法: MLGetMatrix(var_name,edat) 在宏中使用的语法: MLGetMatrix var_name,edat 参数Var_name,是要写入工作表的矩阵名,如果矩阵名在引号内“var_name”的形式,则直接指定变量名,如果var_name不用引号引起来,则通过计算获得实际矩阵的名字。 参数edat指定了矩阵写入工组表的位置。如果参数是用引号引起”edat”的形式,则是直接指定矩阵名,如果参数不用引号引起edat的形式,则通过计算获得矩阵名。 例如:MLGetMatrix(”a”,”sheet

17、1!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”的

18、形式,则直接指定变量名,如果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 va

19、r_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变量的数据

20、创建或者覆盖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

21、 End Sub 用VBA变量DataK中的数据创建或着覆盖Matlab矩阵K。 4. 补充使用Excel Link的注意事项 (1) Excel工作表通常以“=”作为起始标记,例如=matlabfcn(”sum”,B1:B10); (2) 大多数的Excel Link函数中有两种定义变量的方式:直接定义,即将变量用双引号标记则是直接定义变量,例如 MLGetMatrix(”bonds”,”sheet1!C1”),其中bonds是直接定义的变量;间接定义,函数中的不用双引号的工作表单元地址或行列名称被看作是间接变量,函数对其指引的内容进行操作。工作表单元地址可以包含页表序号,例如M

22、LDeleteMatrix(B1);单元格B1中的内容为a,则相当于执行MLDeleteMatrix(”a”); (3) 建议使用Excel Link的自动计算模式。如果在手动计算模式下使用MLGetMatrix函数,当在单元格中输入完函数等式时,需要按F9键执行,而按下F9键将有可能引起其他工作表函数的重复执行,产生不可预料的后果。设置Excel Link自动计算模式方法如下:在Excel“工具”菜单的“选项”,选择重新计算标签,图4.2.13。 (4) 如果需要在工作表中重新计算Excel Link函数,最好按F2键和回车键单步执行每个函数。 (5)如果在MLGetMatrix函数中

23、使用了单元的直接地址,那么当删除了行或列或者将函数从其他单元复制到新的单元后,一定要重新修改地址。Excel Link不能自动改变MLGetMatrix中的地址。 (6)在打开一个包含ExcelLink函数的Excel数据表的时候,Excel会自动从上到下,从左到右地执行这些函数,所有有可能出现如 “#COMMAND!”或“#NONEXIST”等Excel错误提示,只需关闭所有Matlab图形窗口,然后按F2键并回车重新单步执行单元格里地函数就可以了。 5. 在工作表和在宏中使用ExcelLink的例子 例1 :(在工作表中使用ExcelLink)如下图所示: 使用mlopen()

24、函数启动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空间

25、的矩阵变量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:在宏中使

26、用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 mlevalstri

27、ng "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相同。 1、MATLAB的数据导出问题: 如果计算结果被保存为B矩阵: 第一步在指令栏输入: 》save 'b.txt' B -ascii %(把矩阵B的数据,导出到了TXT文件中,名字为b.txt)% 回车 结果b.txt文件就会被保存到work文件夹下 打开b.txt,你会发现,如果数据很多,排列可能没有想象的整齐,而且是二进制显示的。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服