在word中使用matlab编程,不错的教程,分享下。
Notebook
Notebook.1
1.1Notebook的配置和启动... 1
1.1.1Notebook的配置... 1
1.1.2Notebook的启动... 2
一创建新的M-book文件... 2
二打开已有的M-book文件... 3
1.2M-book模板的使用... 3
1.2.1输入细胞(群)的创建和运行... 4
一细胞(群)... 4
二基本操作... 4
三输入细胞(群)操作示例... 5
1.2.2Notebook菜单的其他选项... 6
一自初始化细胞及其应用... 6
二整个M-book文件的运行... 7
三删去M-book 文件所有输出细胞... 7
1.2.3输出细胞的格式控制... 7
一输出数据的表示法... 8
二输出数据间的空行控制... 8
三图形的嵌入控制... 8
四嵌入图形大小的控制... 9
五嵌入图形的背景色问题... 9
六M-book处理活动画面的能力... 9
1.3使用M-book模板的若干参考技法... 10
1.1 Notebook的配置和启动
1.1.1 Notebook的配置
(1)与MATLAB适配的Word
随MATLAB版本的升级,与其适配的版本也会发生变化。以MATLABR2006a为例,能用来配置Notebook环境的Word版本是2000,2002,2003。
(2)Notebook的配置
在Windows已经装有前述Word版本的前提下,在MATLAB中配置Notebook环境十分简便。只要在MATLAB指令窗中运行以下指令,配置过程将自动进行。
notebook –setup
假如指令窗中出现如下信息,就表示配置成功。
Setup complete
1.1.2 Notebook的启动
一 创建新的M-book文件
(1)在Word默认窗口(即Normal.dot)下创建新的M-book文档
l 选择Word 窗口的下拉菜单项{文件:新建} ;
l 在弹出的对话框中,选择“M-book”模板,按 [确定] 键;
l 于是,Word的窗口由原先的默认式样变成“M-book”式样(如图8.1-1所示),自动开启一个新的MATLAB作为其服务器,而不管此前Windows平台上是否已经开启了MATLAB。
l注意:M-book模板引出的MATLAB与直接开启的MATLAB的当前目录位置有所不同。前者的当前目录是matlabbinwin32。为了保证MATLAB正常工作,建议读者把目录改置为matlabwork。
图8.1-1 新建M-book文档的界面
(2)在MATLAB中创建新的M-book文件
在MATLAB指令窗中运行以下指令,都可以创建新的M-book文件
notebook 引出一个未命名的M-book文档界面
notebook NewFileName 在当前目录上创建名为NewFileName的空白文件(慎用!)
〖说明〗
l 第一个指令引出的是使用M-book.dot模板的未命名文档界面(如图8.1-1所示)。
l 第二个指令不仅引出M-book界面,而且自动在当前目录上产生一个名为NewFileName.doc的空白文件。
l第二个指令的使用要特别小心。要特别注意:NewFileName千万不要与当前目录上已经存在的文件同名。否则,将把扩展名为doc的原有同名文件改变为一个空白文件,而且发生这种改变前没有任何提示可控操作。
l以上指令运行后,不会引出新的MATLAB,而只是把原有的MATLAB用作自动服务器,此时在MATLAB指令窗中会出现“Warning:MATLAB is now an automation server”的信息。
二 打开已有的M-book文件
(1)在 Word 默认窗口下打开已有的 M-book 文件
l 在 Word 默认的窗口下打开已有 M-book 文件的方法与打开一般Word文件没有两样。最常用的方法是选中下拉菜单项{文件:打开},然后从弹出的对话框中选择所需要编辑的 M-book 文件。
l 以上指令运行后,自动开启一个新的MATLAB作为M-book的服务器,而不管此前Windows平台上是否已经开启了MATLAB。
(2)在资源管理器中打开已有的M-book文件
l 在资源管理器中,双击已有的M-book文件。
l 经以上操作后,会自动开启一个新的MATLAB作为此M-book文件的服务器,而不管此前Windows平台上是否已经开启了MATLAB。
(3)在MATLAB当前目录窗中打开已有的M-book文件
l 在MATLAB当前目录窗中,双击已有的M-book文件。
l 经以上操作后,会再开启一个新的MATLAB作为该 M-book文件的服务器。
(4)在MATLAB指令窗中开启已有的M-book文件
l在MATLAB指令窗中,运行指令notebook('FN.doc'),在此FN是已有的M-book文件名。特别提醒:FN之后一定要带扩展名doc,否则将造成“清空原文件”的严重后果。
l 该指令运行后,将把当前MATLAB设置成文件FN.doc的自动服务器,而不再开启新的MATLAB。
1.2 M-book模板的使用
M-book.dot模板的外形和使用方法,几乎与普通Word模板Normal.dot完全相同。因此,在M-book中,文字、图象、表格、数学公式等的输入、排版、编辑方法,与在普通Word文档没有什么区别。
M-book的特点在于:该模板以MATLAB为其计算服务器。这些特殊功能集中地反映在{Notebook}下拉菜单中,参见图8.2-1 。
图8.2-1 {Notebook} 下拉菜单的常用功能项
1.2.1 输入细胞(群)的创建和运行
一 细胞(群)
在Notebook中,凡参与Word和MATLAB之间信息交换的部分,就称之谓“细胞(群)”(Cells or Cellgroup)。由M-book送向MATLAB的指令,称为“输入”细胞(Inputcells);由MATLAB返回M-book的计算结果,称为“输出”细胞(Output cells)。
(输入)细胞和(输入)细胞群没有根本的区别,也没有必要刻意区别。输入、输出细胞不必成对生存:输入细胞可以单独存在,但输出细胞必须依赖输入细胞而存在。
二 基本操作
较之普通Word,Notebook最宝贵的东西就是输入细胞(群)。从应用上讲,学会了输入细胞(群)的创建和运行,就意味着掌握了Notebook。
细胞(群)创建、正确运行的两个基本操作:
l 以普通文本形式输入的必须是MATLAB指令。特别注意:标点符号必须是在英文状态下输入的。
l不管文本形式的一条指令有多长,不管一行有多少条文本形式指令,不管有多少行文本形式指令,只要能用鼠标把它们同时“点亮”选中,那么可以被创建或运行,具体如下:
(A) 在文本内容“点亮”后,按组合键 [Ctrl-Enter ],或选中下拉菜单项 {EvaluateCell},那么被“点亮”部分就被激活成输入细胞(群),文字颜色将呈现为象征生命的绿色。与此同时,细胞所含指令被送进MATLAB运行,最后在该输入细胞的下方嵌入计算结果(数据或图形)。这就是输出细胞,它的文字用蓝色显示。
(B) 在文本内容“点亮”后,按组合键 [Alt-D] ,或选中下拉菜单项 {Define Input Cell},那么被“点亮”部分只是变成了输入细胞(群),也没送去运行,当然也就没有运行结果。
三 输入细胞(群)操作示例
【例8.2-1】演示:创建并运行输入细胞的基本操作方法。
(1)输入细胞的单纯生成法
在“正文”段落里,英文状态下,按普通的文本输入方式,键入如下一行指令;用鼠标把该行内容“点亮”;然后按组合键[Alt-D],那文本形式的指令就变成了“绿色”的输入细胞。但并不送去运算,当然也不会输出任何结果。
xx=(1:5)/5*pi;yy=sin(xx).*exp(xx)
(2)输入细胞生成、运行同时进行的操作方法
在英文状态下,在“正文”段落里,按普通的文本输入方式,键入如下一行指令;用鼠标把该行内容“点亮”;然后按组合键[Ctrl-Enter ] ;于是该指令就会自动变成“绿色”输入细胞,并给出“蓝色”运算结果,即输出细胞。
x=(1:4)/4*pi;y=sin(x).*exp(x)
y =
1.5509 4.8105 7.4605 0.0000
〖说明〗
l 在M-book中,最常用最可靠的操作是:“点亮”待运算指令,按组合键 [Ctrl-Enter ]。它的功能是:产生并运行当前细胞(群)。
l 在中文M-book文档中,特别注意:不要把中文标点混杂在MATLAB指令中。否则,或产生运行错误,或造成死机。
【例8.2-2】演示:生成完整图形的所有指令必须定义在同一细胞(群)中。
t=0:0.1:10;y=1-cos(t).*exp(-t);%<1>
tt=[0,10,10,0];
yy=[0.95,0.95,1.05,1.05];
fill(tt,yy,'g'),axis([0,10,0,1.2]),xlabel('t'),ylabel('y')%<4>
hold on %<5>
plot(t,y,'k','LineWidth',4)%<6>
hold off %<7>
ymax=max(y) %<8>
ymax =
1.0669
图 8.2-2 细胞群产生的完整图形
〖说明〗
l使上述程序正确运行的最简单的方法是:用鼠标把从<1>到<8>的指令全部“点亮”,然后按组合键[Ctrl-Enter ] ,就能得到正确结果。
l保证程序正确运行的起码条件是:指令<4><5><6>应该在同一个输入细胞(群)中。否则会产生多幅图形,其中只有最后一幅是完整的。
l不管输入细胞中显示运算结果的指令次序如何,在输出细胞中,非图形结果(包括数值、字符、符号对象等)总安排在图形的前面显示。
1.2.2 Notebook菜单的其他选项
一 自初始化细胞及其应用
(1)自初始化细胞
自初始化细胞(AutoInit Cell)与输入细胞功能的唯一不同是:当用户启动一个M-book文件时,包含在该文件中的自初始化细胞会自动被送去运算。而输入细胞不具备这种功能。若用户需要在打开文件时,对MATLAB工作内存进行初始化工作,那么自初始化细胞特别有用。
自初始化细胞有两种来源:一,文本形式的MATLAB命令;二,已经存在的输入细胞。为把它们变成自初始化细胞,先用鼠标选亮它们,然后选用{Notebook:Define AutoInit Cell} 菜单选项即可。
(2)工作内存的初始化
M-book 所有计算都在MATLAB中进行,参与运算的所有变量都储存在MATLAB工作内存。各M-book文件和MATLAB指令窗分享同一个“计算引擎(Compute Engine)”和同一个工作内存。工作内存中的变量是各M-book文件和MATLAB指令窗工作后共同产生的。对此,用户应有清醒认识。记住这条工作原理,将能使M-book 文件灵活自如。
当用户同时打开几个M-book 文件,或在MATLAB指令窗和M-book文件间交互运作时,要特别注意不同文件和窗口之间变量的相互影响。假如要保证某M-book文件独占MATLAB工作内存,保证该文件的输入输出数据间的一致性,一个有效的办法是:把 clear定义为该文件的第一个自初始化细胞。
二 整个M-book文件的运行
{Notebook} 菜单中的 {Evaluate M-book} 选项可以运行整个M-book文件,即把文档中所有输入细胞送到MATLAB中去运行。不管光标处在该文档的什么地方,运行总是从文件首部开始。在整个M-book文件运行时,它不但会把所有原输出细胞中的内容刷新;而且会补写新的输出细胞。这个命令在保证整个M-book文件中所有指令、数据、图形的一致性方面十分有用。
在此提醒用户注意:假如原M-book文档的输出细胞自生成后没有再经历过编辑(如图形“对中”,输出细胞位置的前后“搬动”,输出细胞前后空行的“删除”等)操作,那么使用{Evaluate M-book} 选项可得到良好的预期效果。否则,有可能造成整个版面的混乱。
实际上,M-book模板的输出细胞采用“两端对齐”方式排版。对非图形输出来说,这是符合普通排版习惯的;但对图形输出来说,就显得别扭,因此,一般把图形“对中”。这样,以后的{Evaluate M-book} 操作,就引起版面混乱。
此外,假如在原先的输入细胞后没有空行相隔,而紧接着普通文档的标题,那么 {Evaluate M-book}操作,将导致标题错乱。
总之,慎用 {Evaluate M-book} 操作,尤其对较大的M-book文件。
三 删去M-book 文件所有输出细胞
{Notebook:Purge Output Cells} 菜单选项的作用是删去M-book文件中的所有输出细胞。它的具体操作步骤是:运行下拉菜单项 {编辑:全选} ,使整个文件选亮;然后再运行 下拉菜单项{Notebook:Purge Output Cells} ,所有输出细胞就被删去。这个指令在撰写报告、布置作业时常会用到。
1.2.3 输出细胞的格式控制
输出细胞容纳MATLAB的各种输出结果:数据、图形、错误信息。输出数据的有效数字、图形的大小都可以借助如图8.2-3所示的对话框加以控制。打开控制对话框的方法是:选中{Notebook:NotebookOptions}菜单选项。
图8.2-3 控制输出细胞格式的对话框
一 输出数据的表示法
在MATLAB指令窗中,用format指令控制的输出数据表示方式共有8种:“Short”、“Long”、“Hex”、“Bank”、“Plus”、“Shorte”、“Long e”、“Rational”。
在M-book中,输出细胞中数据的表示方式有三种控制方法:
(1)利用图8.2-3所示对话框中 {Numeric Format} 子框下拉列表进行设置。
(2)借助M-book输入细胞中的format 指令进行设置。
(3)在MATLAB指令窗中,用format指令进行设置。
以上三种方法的效果相同,读者应视情况选用。
二 输出数据间的空行控制
图8.2-3所示对话框中的 {Loose} 和 {Compact} 选项用来控制输入细胞与输出细胞之间的空白区间。比如,选择{Loose} 后,在M-book 文档的输入细胞和输出细胞之间加入一个空行。注意:这种控制方法与输入细胞群中的“formatloose”、“format compact”命令有不同的功能。后者控制的将是输出细胞与输出细胞之间空行。
在此再需强调,不同输出格式给出不同的数据显示精度,但内部存储及运算都是以相同的双精度进行的。
三 图形的嵌入控制
在 默认情况下,图8.2-3所示对话框中的“镶嵌选项” {Embed Figures in M-book}处于“勾选”状态。此时,输出图形将被镶嵌在M-book 文档中。假如“镶嵌选项”不勾选,那么在M-book文档中,将肯定没有输出图形。“镶嵌选项”的控制作用,将影响其后运行的所有输入细胞中的绘图输出。
【例8.2-3】在同一细胞群中虽然包含绘制两幅图形的指令,但实际上只能把最后一个绘制的图形镶嵌进M-book。
surf(peaks) %绘制曲面图
colormap(hot)
t=(0:50)/50*pi;y=sin(t);
plot(t,y) %绘制曲线图
图8.2-4 同一细胞群中最后一幅绘制的曲线图
四 嵌入图形大小的控制
在图 8.2-3所示的Notebook Options对话框下方有三个栏目:“Units”、“Width”、“Height”。用户可通过对这三栏的设置,决定嵌入图形框的大小。
注意:由于嵌入图形框的大小由人为指定,一般不会顾及其宽高比是否与MATLAB图形窗相同。这样,诸如axis square ,axis equal 等控制宽高比的指令将不能发挥原先的作用。
图形一旦被嵌入M-book ,就象普通Word图形一样,可以被移动、缩放、剪裁和编辑。有关内容,请读者查阅 Word书籍。
五 嵌入图形的背景色问题
在默认情况下,正常嵌入图形的背景色应是“灰/白”的。假如由于某种原因,所嵌图形出现“灰/黑”背景色,那么可采取以下两种措施的一种,尝试纠正:
l 打开Notebook Options 对话框,确认“镶嵌选项”处于“勾选”状态,并再次点动 [OK]键。然后,再重新运行输入细胞。
l 在MATLAB指令窗中,运行whitebg('white') ,或运行close;colordefwhite ,然后再重新运行输入细胞。
六 M-book处理活动画面的能力
M-book输出细胞中图形的产生机理是:在模板“宏”的控制下,输入细胞中的绘图指令被送去MATLAB计算后,MATLAB依然是在图形窗中产生图形,只有该窗中的最终画面才被“复制”到剪贴板,并再从那里被粘贴到M-book。
由此机理可知,M-book模板既不可能表现活动画面,也不可能用于画面的交互操作。正因为如此,本书每凡涉及动画和交互画面时,都一再提醒读者,那种指令应在MATLAB指令窗中运行。
尽管如此,但仍可以从M-book发出动画指令,把图形窗带到前台,在图形窗中表现画面的活动情景。有兴趣的读者可以试试例8.2-4中的指令。这种处理方法在制作计算机演讲稿时,有可能会用到。
【例8.2-4】在M-book中尝试导出动画图形。
假若下列M文件在MATLAB的搜索路径上,那么运行以下指令可以带出动画图形窗。
anim_zzy1(1),shg
〖说明〗
l 在运行以上指令前,应该先使“镶嵌选项”处于不勾选状态。
1.3 使用M-book模板的若干参考技法
l 文档中的MATLAB指令必须在英文状态下输入;指令中的标点符号必须在英文状态下输入。
l 续行号不能使用于输入细胞。
l 不管一条指令多长,只要不用“硬回车”换行, 总可以被鼠标全部“点亮”并按组合键 [Ctrl-Enter]后正确地运行。
lMATLAB指令在M-book中的运行速度比在指令窗中慢得多。因此,符号计算指令、编译指令等在M-book中运行时,有可能发生“运行时间过长”或“出错”的警告。遇到这种情况,用户最好还是让那些指令在指令窗中直接运行。