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

Matlab与Word无缝连接_Notebook

时间:2016-08-25 23:41:51      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:

Notebook简单介绍:

Matlab从5.0版本起加入了Notebook功能,集合了Word和Matlab;此时Notebook就像一个会计算的文本稿,它兼有Matlab和Word的优点,工作方式如下:

在Word中创建命令------Matlab后台执行------结果返回Word显示;


Notebook的配置与启动:

一、Notebook的配置:个人系统只要安装正确的Matlab5.0和Word97以上的版本,一般都会正确安装Notebook;

在Matlab的命令窗口输入:notebook -setup

出现如下的结果即为安装正确;

Welcome to the utility for setting up the MATLAB Notebook
for interfacing MATLAB to Microsoft Word

Setup complete

二、Notebook的启动:

首先创建新的notebook:

(1)在Word中直接创建Notebook,新建一个Word,单击Word窗口的菜单“文件”---“新建”---“我的模板”---“M-book”---“文档”---“确定”即可;对比没有安装Notebook的文档,M-book多了一个加载项的内容;

(2)在Matlab中创建Notebook,窗口左下角依次单击Start---“Matlab”---“notebook”;

(3)在Matlab的命令行创建一个Notebook,在窗口直接输入notebook就可以创建一个没有命名的notebook;输入notebook filename既可以创建一个命名好的notebook文件;

打开已有的notebook:

(1)Word默认窗口中可以打开,与Word相同,系统会开启一个Matlab作为其运行平台;

(2)在Matlab当前路径中可以打开,系统会开启一个新的Matlab作为其运行平台;

(3)在资源管理器中打开,无论Matlab打开还是没有打开,系统仍然会开一个Matlab作为其工作平台;

(4)在Matlab的命令窗口中打开,使用如下命令notebook(‘filename.doc‘),注意.doc一定要加上,而且会把当前的Matlab作为其工作平台;


M-book模板的使用:

细胞和细胞群的概念:在Notebook中,所有参与Matlab和Word之间进行信息交换的部分都成为细胞或者细胞群,在Word文档中选中并且输入Matlab运行的部分称为输入细胞,经过                              Matlab运行以后返回的输出结果称为输出细胞。各种选项都在“加载项”---“notebook”的下拉菜单里面。有输出细胞就一定会有输入细胞,但是有输入细胞不一定                              有输出细胞;

基本操作:Word中的输入细胞变为可运行的代码,就相当于是把代码复制粘贴到Matlab命令行中,然后得到结果在复制粘贴到Word中,而我们这里的notebook就是省去了复制粘贴的              过程;输入细胞必须在英文状态下输入,如果在.m文件中,会给出红色的提示,而在notebook中不会给出任何提示;不管文本中代码一行有多长,或者有多少行,只要鼠标能              够将其选中,这些都可以在Matlab工作平台上面进行运行;

实际操作:

          “选中代码”---“notebook”---“Define Input Cell"---“无论原来什么字体,这时都会变为10号的绿色字体,这时还有快捷键Alt+D,这只是将其变为输入细胞,不会有输出结果”

          “选中代码”---“右键”---“Evaluate cells"---“无论原来什么字体,这时都会变为10号的绿色字体,这时还有快捷键Ctrl+Enter,输入细胞变为绿色,输出结果变为蓝色”


Notebook各选项的功能和使用方法 :

 一、Define Autolnit Cell:

(1)自动初始化细胞:当打开一个notebook的时候,文件内包含的初始化细胞就会调入到Matlab中运行,输出运行结果。将输入细胞变为自动初始化细胞的方法是选中“notebook”---“Define Autolnit Cell”。

(2)工作内存的初始化:notebook的输入细胞在Matlab中运行,各个M-book和M-book指令窗口共享一个“计算引擎”和同一个工作内存。工作内存中的变量是在M-book和Matlab运行之后产生的,当各个M-book交互运作的时候,不同的文件和窗口的变量是相互影响的,这样就会使得输出的计算结果和单独运算输出的结果不同,解决这个问题的办法就是在每一组输入细胞的前面加一项“clear”指令,这样各个输出细胞之间就不会相互影响了。

二、Evaluate(评估) Matlab notebook:

如需要对整个M-book文件整个一起运行,我们可以使用“notebook”---“Evaluate Matlab notebook”选项。这样就是相当于从头开始对整个M-book运行一遍,就是进行了一次刷新,把新的输出细胞补充进来。对于大程序。这条指令少用。

三、Purge(净化) Selected Output Cells:

利用这个选项可以删除所有的输出细胞;具体的操作是“加载项”---“notebook”---“Purge Selected Output Cells”。

四、Notebook Options:

1、对输出数据的控制:数据格式(Numeric format)中的格式项控制12种输出数据的表示方法:Short、Long、Short e、Long e、Short g、Long g、Short eng、Long eng、Hex、Bank、Plus、Rational;

2、对输出数据间空行的控制:Loose和Compact选项是用来控制输入细胞和输出细胞之间的空隔。Loose为输入细胞和输出细胞之间加一个空行。同时注意输入细胞群中的“format loose”和“format Compact”指令是用来控制输出细胞与输出细胞之间的空行。

3、对图形的嵌入控制,刚打开的M-book文件中,“notebook options”中的“Embed figures in Matlab notebook”都是出于勾选状态的。这样输出的图像就可以嵌入到M-book中了,否则是无法显示的。另外对于图形的控制,我们可以通过其中的“Units、Width、Height”进行修改,当然在M-book中修改岂不是更方便。

注意:

1、正常情况下,图形的背景颜色都是灰色加上白色,当出现时灰色加黑色的时候,我们有如下的解决办法:

一是在options中勾选“Embed figures in Matlab notebook”;

二是在命令行输入whiteg(‘while’);

三是在命令行输入

close;

colordef white;

2、M-book文件中出错,我们只知道出错的原因,而不知道错在哪里,而在.m文件中我们既可以知道出现的错误,又可以知道出现错误所在的位置,所以M-book也有不足之处;

3、wps打开后不能显示,所以放弃用wps打开M-book吧!


Notebook的实例介绍:

1、随机产生10^3个正态分布的数,并绘制成正态分布密度曲线图。

提示:随机数可以使用randn函数产生;hist绘制一组数的直方图(默认情况下分成10个矩形,使用hist(变量,矩形个数即组数)修改参数可以实现改变矩形个数即组数)

结果:

for i=1:10^3

    a(i)=randn;

end

hist(a)

技术分享

 

2、在M-book文件中有多个输入细胞,分别为:

(1)球一元二次方程组的通解;

(2)求解4x^2+7x+3=0的根;

提示:在这里我们将第一个定义为自动初始化细胞;关闭M-book文件,再打开就会自动运行处第一个的结果;

结果:

y=solve(‘a*x^2+b*x+c‘)

y1=solve(‘4x^2+7x+3=0‘)

注意:在这里切忌加引号。在这里就算你已经开了Matlab,当新建立M-book的时候,它也自动会开启一个新的Matlab作为其新的运行平台,关闭M-book,则Matlab关闭;所以在这里建议,进行Matlab演示的时候,首先不需要打开Matlab,建立的M-book文件就会自动打开作为其运行平台。

技术分享

 

 

3、在M-book中有多个输入细胞,分别为:

(1)求多项式4x^4-3x^3+x^2+7x+3=0的根;

(2)计算矩阵的秩;

(3)求解现行其次方程组的解;

提示:要求一次所有的输入细胞全部运行,则需要定义“Evaluate Matlab notebook”;roots函数是对多项式函数求根,功能跟solve函数一样;null(a,“r")函数是用来求解”a*x=0“的解空间,即求出解空间的一组基;”clear“当然不能够少,他的目的是使第一个输入细胞的变量不影响后面的输入细胞;

结果:

clear;

a=[4,3,1,7,3];

y1=roots(a)

clear

a=[1:3;3:5;5:7]

y2=rank(a)

clear

a=[1:3;3:5;5:7]

y3=null(a,‘r‘)

技术分享

Matlab与Word无缝连接_Notebook

标签:

原文地址:http://www.cnblogs.com/clay-whoami/p/5808522.html

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