22 May 2010

MATLAB与Microsoft Word的连接


MathCAD文字处理是非常强的,那么MATLAB的文字处理又将如何呢?MathWorks公司开发的MATLAB Notebook成功地将Microsoft Word和MATLAB结合在一起,为文字处理、科学计算和工程设计营造了一个完美的工作环境。这样MATLAB不仅兼具原有的计算能力,而且又增加了 Word软件的编辑能力,已经远远的把MathCAD抛在后面。MATLAB Notebook可以在word中随时修改计算命令,随时计算并生成图像返回,使用户能在Word环境中“随心所欲地享用”MATLAB的浩瀚科技资源。 MATLAB Notebook的工作方式是:用户在word文档中创建命令,然后送到MATLAB的后台中执行,最后将结果返回到word中。

建议撰写科技报告、论文、专著的科学工作者使用MATLAB Notebook,建议讲授、编写理工科教材的教师使用MATLAB Notebook,建议对于演算理工科习题的广大学生使用MATLAB Notebook。MATLAB Notebook的强大功能将会使你事半功倍。

1 安装MATLAB Notebook
从上面的介绍中可以看出,使用MATLAB Notebook时,你的计算机中必须有Word和MATLAB。本书以MATLAB6.5和word2000为例。MATLAB Notebook文件又称为M-book文件。MATLAB6.5的Notebook是在MATLAB环境下安装的。具体步骤如下:

(1)在系统中分别安装MATLAB6.5和word2000,并启动 MATLAB6.5命令窗口;

(2)在命令窗口中输入:

>> notebook -setup

就会得到如下提示:

Welcome to the utility for setting up the MATLAB Notebook

for interfacing MATLAB to Microsoft Word




Choose your version of Microsoft Word:

[1] Microsoft Word 97

[2] Microsoft Word 2000

[3] Microsoft Word 2002 (XP)

[4] Exit, making no changes

(3)根据安装的Word的版本选择相应的代号,本文选择如下:

Microsoft Word Version: 2

Notebook setup is complete.

这样你就可以使用MATLAB Notebook了。有两种方法可以打开一个M-book文件。



(1)直接在MATLAB命令窗口键入命令来新建或打开一个M-book文件:

>> notebook %新建一个M-book(不建议使用,在我的计算机里经常出错)

>> notebook c:\documents\mymbook.doc %打开一个已经存在的M-book

(2)先打开word2000,然后打开文件(F)/新建(不要直接点击新建按钮),弹出图11-1对话框。选中其中的m-book模板。在新建的word文档中就会出现图11-2中黑圈所在的菜单栏。

2 使用MATLAB Notebook
Notebook是通过动态链接来和MATLAB交互的。Notebook和MATLAB交互的基本单位为细胞。Notebook需要输入MATLAB中的命令组成细胞,再传到MATLAB中运行,运行输出的结果再以细胞的方式传回Notebook。

1. 在Word中执行命令的基本过程
Notebook采用输入细胞(input cell)来定义MATLAB的输入命令。步骤如下:

(1)采用文本格式输入命令,在命令结束时不要按回车和空格键;

(2)从Notebook菜单中选中“Define Input Cell”选项,用来定义输入细胞;

(3)从Notebook菜单中选中“Evaluate Cell”选项或者Ctrl+Enter。

其中输入细胞都显示为黑方括号包括的绿色字符,输出细胞都是黑方括号包括的蓝色字符,如果出现错误黑方括号包括的红色字符,其它文本都默认为黑色字符。如下:(作者注释:无专门标示的行为蓝色)

m=eye(3) (作者注释:此行为绿色)

m =



1 0 0



0 1 0



0 0 1

m/0 (作者注释:此行为绿色)

Warning: Divide by zero.



(Type "warning off MATLAB:divideByZero" to suppress this warning.)



ans =



Inf NaN NaN



NaN Inf NaN



NaN NaN Inf

m=eye(3) n=eye(4) (作者注释:此行为绿色)

??? format compact;m=eye(3) n=eye(4)



| (作者注释:此行以及上下两行为红色)



Error: Missing operator, comma, or semicolon. 绿色)



2. 实例讲解
在一段文本中间执行代码

在MATLAB中,可以把输入细胞放在文本中间运行,而不影响其它文本。步骤如下:

(1)输入样本如下,将m=eye(3)放到文本中间。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你去过《动力学与控制技术》论坛吗?m=eye(3) 那里有很多好东西。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(2)选中命令,如下所示:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你去过《动力学与控制技术》论坛吗?m=eye(3) 那里有很多好东西。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

(3)从Notebook菜单中选中“Evaluate Cell”选项或者Ctrl+Enter。将会出现上面例子中类似的结果。

(4)如果要将输出细胞转化为普通文本,选中要转换的细胞,然后从 Notebook菜单中选中“Undefine Cells”选项或者Alt+U。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

你去过《动力学与控制技术》论坛吗?m=eye(3) 那里有很多好东西。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

m =



1 0 0



0 1 0



0 0 1

【实例】绘制一幅图片

生成完整图形的多条图形指令必须定义在同一细胞群中

t=0:0.1:20;y=1-cos(t).*exp(-t/5);

Time=[0,20,20,0];

Amplitude=[0.95,0.95,1.05,1.05];

fill(Time,Amplitude,'g'),axis([0,20,0,2]);

xlabel('Time'),ylabel('Amplitude');

hold on

plot(t,y,'r','LineWidth',2)

hold off

ymax=min(y)

将以上程序写到Word当中,然后全部选上,然后选择【Notebook|Define Input Cell】,最后从Notebook菜单中选中【Evaluate Cell】选项,或者Ctrl+Enter。得到如下结果

t=0:0.1:20;y=1-cos(t).*exp(-t/5);



Time=[0,20,20,0];



Amplitude=[0.95,0.95,1.05,1.05];



fill(Time,Amplitude,'g'),axis([0,20,0,2]),xlabel('Time'),ylabel('Amplitude');



hold on



plot(t,y,'r','LineWidth',2)



hold off



ymax=min(y)




ymax =

0

No comments :

Post a Comment