码迷,mamicode.com
首页 > 其他好文 > 详细

MATLAB与Word、Excel的混合使用

时间:2015-08-19 23:19:15      阅读:538      评论:0      收藏:0      [点我收藏+]

标签:

技术分享  华夫人:我们Notebook是由MathWork公司在MATLAB5.0中开始增加,实MATLAB和Word的连接。
  唐伯虎:哼!我们ExcelLink是在Windows环境下实现的Excel与Matlab连接。
  华夫人:用了我们Notebook的人能在Word环境中“随心所欲的享用”MATLAB的浩瀚科技资源,感受到文字处理、科学计算、工程设计于一体的完美环境。
  唐伯虎:没有错!而用了我们ExcelLink的朋友,在工作表空间和宏编程工具中使用Matlab的数值计算,图形处理等功能时,根本不需要脱离Excel环境。实在是居家旅行.....
  华夫人:杀人灭口......
  唐伯虎、华夫人:必备良药!!!

  呵呵,开个玩笑,切入正题哈。
一、MATLAB和Word的混合使用
  当然我们的计算机中得有MATLAB和word,生成的MATLAB Netobook文件又称为M-book文件。以下均以MATLAB R2014a和Microsoft Office Word 2003版本为例,其他版本则稍有出入。
  1、Netobook的安装和使用环境。
   启动MATLAB命令窗口,在其中输入:
     >>notebook -setup
   得到以下提示:
    技术分享
   这样就可以使用MATLAB Notebook了。打开Notebook有两种方法。
   (1)在MATLAB命令窗口输出:
     >>notbook  %新建一个M-book
   (2)直接打开M-book.dot文件。
   2、Netobook实例
    其实Notebook就是一个Word的模板文档。它是通过动态链接和MATLAB进行交互的。其中交互的基本单位是“细胞”(cell)。M-book需要把在Word中输入的命令或者语句组成细胞。再传到MATLAB中运行,运行输出的结果继续以“细胞”的形式呈现在Notebook里。
    以下是Netobook空白模板:(与Word相差就是下面的Notebook栏了)
  技术分享           
      (1)、执行命令的基本过程
  • 采用文本格式输入命令,在命令结束时则不是按回车和空格;
  • 从Notebook菜单中选中"Define Input Cell"选项,用来定义输入细胞;
  • 从Notebook菜单中选中"Evaluate Cell"选项或者Ctrl+Enter。
    其中输入细胞都显示黑色括号包括的绿色字符,输出的细胞都是黑色括号包括的蓝色字符,如果出现错误黑色括号包括的红色字符,其他文本默认为褐色字符(若觉得输不方便可先在MTALB编辑器中编辑)。如:
  技术分享
 
   若要将输出的细胞转化为普通文本,选中要转化的细胞,在Notebook菜单中选中"Undefine Cells"或者  Alt+U。
  (2)、例子
  代码如下:
 1 t=0:0.1:20;
 2 y=1-cos(t).*exp(-t/5);
 3 time=[0,20,20,0];
 4 amplitude=[0.95,0.95,1.05,1.05];
 5 fill(time,amplitude,g),axis([0,20,0,2]);
 6 xlabel(time),ylabel(amplitude);
 7 hold on
 8 plot(t,y,r,linewidth,2)
 9 hold off
10 ymax=min(y)

    结果如下:

  技术分享

  3、Notebook使用的几个小问题
  • 带鼠标操作的图形交互指令最好不要在Notebook文档中运行;
  • MTALAB指令在M-book文档中运行的速度比在MATLAB命令窗口中执行要慢的多;
  • 在需要打印Word文档时,可将细胞转化为普通文本,若以细胞形式打印将会影响打印效果;  
二、MATLAB和Excel的混合使用    
  在MATLAB的基础上使用Exce时,与Word稍有不同,多需要了一个进行链接的插件,名为Excel Link。它通过对两者的链接,用户可在Excel的工作空间里,利用Excel的宏编程工具,来进行相关操作,同时它可以保证两个工作环境中数据的交换和同步更新。  
   在初始安装MATLAB时,默认的安装组件是勾选了Excel link的。下来实在Excel Link的相应设置:
  1、Excel Link的安装
  • 启动Microsoft Excel,在工具菜单栏下找到"加载宏"。
  • 打开"加载宏"后,点击"浏览",接着选择用户自己的C:\Program Files\MATLAB\R2014a\toolbox\exlink下的excllink.xla文件,单击确定。如图:   
  • 技术分享
  • 返回"加载宏"窗口,单击确定。即可看到Excel窗口的变化,如下:技术分享 

   2、设置Excel Link的启动

    安装完成后,在每次启动Excel时,Excel Link和MATLAB将自动运行。若不希望运行,可在Excel数据表单元中输入"=MLAutoStart("no")"函数。当再次启动Excel时,Excel Link和MATLABJ将不再启动。如图:

技术分享

       之后也可以在Excel中手动启动Excel Link和MATLAB。在工具菜单中选择"宏",接着选择"宏",在打开的"宏"对话框中输入"MATLANinit",即可。如图:
  技术分享
  3、终止Excel Link的运行
    当终止Excel时,Excel Link和MATLAB会被同时终止。
    如果需要在Excel环境中终止MATLAB和Excel Link,则在工作表单元中输入"=MLClose()"。当需要重新启动Excel Link和  MATLAB时,可选择MLOpen或MATLABinit命令来启动。
  4、Excel Link实例
    打开包含在MATLAB中安装路径为C:\Program Files\MATLAB\R2014a\toolbox\exlink的示例文件Exlisamp.xls。   
    4.1、数据表执行方式
      单击Exlisamp.xls中的Shteel标签,可以看到数据表中包含一个名为DATA的数组A4:C28。如图:
技术分享
     具体步骤如下:
      (1)、选中单元E5,按F2键,回车执行函数"=MLPutMatrix("data",DATA)",将DATA拷贝到MATLAB中。DATA包含了    对3个变量的25次观测值,并且已知观测值有很强的线性相关性;
      (2)、对E8、E9、E10、E13、E16、E19、E20、E21、E24、E25、E28执行相同的操作。如图:
技术分享
 代码如下:
 1 x=1:1:25;
 2 y1=[458
 3 476
 4 495
 5 521
 6 532
 7 533
 8 543
 9 602
10 635
11 671
12 766
13 913
14 938
15 1013
16 1038
17 1134
18 1163
19 1319
20 1325
21 1591
22 2006
23 2043
24 2904
25 3282
26 5326
27 ];
28 y2=[379.047453
29 430.3098643
30 462.4722111
31 472.0222433
32 501.7970821
33 476.7972595
34 467.2472272
35 570.8967919
36 641.1212438
37 743.6460664
38 767.5211469
39 773.558929
40 1143.781253
41 1279.593164
42 1201.21947
43 1098.694648
44 1251.081092
45 1478.743051
46 1163.157365
47 1479.157123
48 2086.177367
49 2011.591971
50 2666.224352
51 3483.345306
52 5197.79632
53 ];
54 y3=[402.0080047
55 515.8528028
56 549.7113505
57 543.0183918
58 524.5498711
59 513.7749611
60 522.2080918
61 554.7609792
62 611.0946537
63 686.9714884
64 775.6072286
65 869.0230193
66 959.3974346
67 1040.418506
68 1108.635751
69 1164.812202
70 1215.276435
71 1273.274596
72 1360.322433
73 1507.557324
74 1757.090302
75 2163.358088
76 2794.475118
77 3733.58557
78 5080.215396
79 ];
80 plot(x,y1,o,x,y2,:,x,y3,-.)
81 legend(Data,Fit,Newfit)

    得出波形图如下:

 技术分享
       图中Data、Fit和Newfit三条曲线进行比较,可发现数据具有很强的相关性,且不是线性独立的,拟合曲线和原始数据并不是十分吻合,但5阶多项式拟合则显示了更加精确的数学模型。
    4.2、宏命令执行模式
      单击Sheet标签,激活单元A4,但先不要执行。单元A4调用宏CurveFit可以再Visual Basic环境下打开CurveFit。操作如下:
      (1)、在Excel中执行工具菜单栏下"宏"选项中的"Visual Basic编辑器",在工程中打开模板文件夹,如下图:
    技术分享
      (2)、选中Moduel,则可以打开该模块,如下图:
 技术分享
      (3)、在此模块打开的状态下,在其工具菜单栏中点击"引用"命令,在弹出的对话框中点击"Excellink"加载;
      (4)、返回到Sheet2的单元A4,按F2回车,执行宏CurveFit。它将排序后的数据y,fit和newfit从MATLAB拷贝到数据表中。如下图:
技术分享
  5、Excel Link使用的几个小问题
    (1)、Excel Link函数执行的时一个特定操作,而Microsoft Excel的函数返回的时一个确定的数值,所以Excel的操作和函数在Excel Link函数的控制下会有不同的表现。 
    (2)、大多数Excel Link函数中有两种定义变量的方式,即直接和间接方式。将变量用双引号标记即可直接定义变量,如"=MLDeleteMatrix("Bonds")",函数中不加双引号的工作区单元地址或行列名称被视为间接变量,函数对其指引内容进行操作。工作区单元地址可以包含页表序号。   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


 

MATLAB与Word、Excel的混合使用

标签:

原文地址:http://www.cnblogs.com/clairvoyant/p/4743417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!