☑1ot(t,y) 点击四1ot化) 键绘制出选定类型的图形。(详见例1.7-1) 图形绘制启动键 点击二键,引出绘图类型菜单供选择。(详见例1,7-1) 绘图类型 菜单引出键 【例1.7-1】通过“工作空间浏览器”的运作,采用图形显示内存变量t和y之间的关系图形。 (注意:本例是在例1.3-10运行后进行的,因此内存中保存着由例1.3-10产生的全部变量。) (1)绘图变量的选定 在“工作空间浏览器”中,用鼠标点亮所需图示的变量y和t。 (2)选定绘图的类型 点击[绘图类型菜单引出键],引出绘图类型菜单。假如需要绘制“填色面图”,则用鼠 标点中“填色面图”栏(参见图1.7-1),即可。 (3)绘图变量位置的交换 由于在选择变量时,先点选y,后选t,所以在绘图指令显示出area(y,t)。显然,指令 area的两个输入量位置不正确。为纠正这种错误,用鼠标点击[输入量位置交换键],参见图 1.7-1。 (2)图形的绘制 经过以上操作后,再双击“填色面图”菜单,就绘制出如图17-2所示的图形。 1 08 06 0.4 0.2 -02 -0.4 06 6 8 10 12 图1.7-2数组(t,y)表示的曲线 〖说明】 ● 注意:借助图形表现数据是十分常用的手段。这是由于图形具有表现数据内在联系和宏 观特征的卓越能力。正是出于这种考虑,MATLAB提供了“图示数据”的多种途径。 1.7.2 工作空间的管理指令 本节要介绍管理工作空间的三个常用指令:who,clear,pack。 1 查询指令who及whos 【例1.7-2】在指令窗中运用who,whos查阅MATLAB内存变量。 who,whos在指令窗中运行后的显示结果如下: who Your variables are: 21
21 图形绘制启动键 点击 键绘制出选定类型的图形。(详见例 1.7-1) 绘图类型 菜单引出键 点击 键,引出绘图类型菜单供选择。(详见例 1.7-1) 【例 1.7-1】通过“工作空间浏览器”的运作,采用图形显示内存变量 t 和 y 之间的关系图形 。 (注意:本例是在例 1.3-10 运行后进行的,因此内存中保存着由例 1.3-10 产生的全部变量。) (1)绘图变量的选定 在“工作空间浏览器”中,用鼠标点亮所需图示的变量 y 和 t。 (2)选定绘图的类型 点击[绘图类型菜单引出键],引出绘图类型菜单。假如需要绘制“填色面图”,则用鼠 标点中“填色面图”栏(参见图 1.7-1),即可。 (3)绘图变量位置的交换 由于在选择变量时,先点选 y,后选 t,所以在绘图指令显示出 area(y,t)。显然,指令 area 的两个输入量位置不正确。为纠正这种错误,用鼠标点击[输入量位置交换键],参见图 1.7-1。 (2)图形的绘制 经过以上操作后,再双击“填色面图”菜单,就绘制出如图 1.7-2 所示的图形。 图 1.7-2 数组(t, y) 表示的曲线 〖说明〗 注意:借助图形表现数据是十分常用的手段。这是由于图形具有表现数据内在联系和宏 观特征的卓越能力。正是出于这种考虑,MATLAB 提供了“图示数据”的多种途径。 1.7.2 工作空间的管理指令 本节要介绍管理工作空间的三个常用指令:who, clear, pack。 1 查询指令 who 及 whos 【例 1.7-2】在指令窗中运用 who, whos 查阅 MATLAB 内存变量。 who, whos 在指令窗中运行后的显示结果如下: who Your variables are:
ans t whos Name size Bytes class Attributes ans 1x1 8 double 七 1x201 1608 double 1×201 1608 double 〖说明】 ● who,whos指令操作对MATLAB的所有版本都适用。 ● 本例两个指令的差别仅在于获取内存变量信息的简单和详细程度不同。 ● 读者运行who,whos指令后的变量列表随具体情况而不同。本例的变量列表是在本书作 者进行特定操作后产生的。 2 从工作空间中删除变量和函数的指令clear 最常用的几种格式: clear 清除工作空间中的所有变量 clear varl var2 清除工作空间中的varl和var2变量 clear all 清除工作空间中所有的变量、全局变量、编译过的M函数和 MEX链接。 clear funl fun2 清除工作空间中名为funl和fun2的函数 注意:在第2、4调用格式中,clear后面的变量名和函数名之间一定要采用“空格” 分隔,而不能采用其他符号。 3 整理工作空间内存碎片的指令pack 在MATLAB运行期间,它会自动地为产生的变量分配内存,也会为使用到的M函数分 配内存。有时对于容量较大的变量,会出现“Out of memory”的错误。此时,可能使用clear 指令清除若干内存中的变量也无济于事。产生这种问题的一个原因是:MATLAB存放一个 变量时,必须使用“连成一片”的内存空间。对于那些被碎片分割得“支离破碎”的内存空 间,即便它们的总容量超过待生成变量,也无法使用。在这种情况下,借助pack指令也许 能解决问题。 1.7.3 Variable Editor变量编辑器 Variable Editor-s -回x Eile Edit Yiew Graphics Debug Desktop Mindow Help ya× 韵 Base ④ov. ▣ 田s3x10doub1e> 1 2 3 4 5 0.8147 0.9134 0.2785 0.9649 0.9572 2 0.9058 0.6324 0.5489 0.1576 0.4854 0.1270 0.0975 0.9575 0.9706 0.8003 图1.7-3变量编辑器 双击工作空间浏览器中的变量图标,将引出如图1.7-3所示的变量编辑器Variable Editor。该编辑器可用来查看、编辑数组元素:对数组中指定的行或列进行图示。 22
22 ans t y whos Name Size Bytes Class Attributes ans 1x1 8 double t 1x201 1608 double y 1x201 1608 double s 〖说明〗 who, whos 指令操作对 MATLAB 的所有版本都适用。 本例两个指令的差别仅在于获取内存变量信息的简单和详细程度不同。 读者运行 who, whos 指令后的变量列表随具体情况而不同。本例的变量列表是在本书作 者进行特定操作后产生的。 2 从工作空间中删除变量和函数的指令 clear 最常用的几种格式: clear 清除工作空间中的所有变量 clear var1 var2 清除工作空间中的 var1 和 var2 变量 clear all 清除工作空间中所有的变量、全局变量、编译过的 M 函数和 MEX 链接。 clear fun1 fun2 清除工作空间中名为 fun1 和 fun2 的函数 注意:在第 2、4 调用格式中,clear 后面的变量名和函数名之间一定要采用“空格” 分隔,而不能采用其他符号。 3 整理工作空间内存碎片的指令 pack 在 MATLAB 运行期间,它会自动地为产生的变量分配内存,也会为使用到的 M 函数分 配内存。有时对于容量较大的变量,会出现“Out of memory”的错误。此时,可能使用 clear 指令清除若干内存中的变量也无济于事。产生这种问题的一个原因是:MATLAB 存放一个 变量时,必须使用“连成一片”的内存空间。对于那些被碎片分割得“支离破碎”的内存空 间,即便它们的总容量超过待生成变量,也无法使用。在这种情况下,借助 pack 指令也许 能解决问题。 1.7.3 Variable Editor 变量编辑器 图 1.7-3 变量编辑器 双击工作空间浏览器中的变量图标,将引出如图 1.7-3 所示的变量编辑器 Variable Editor。该编辑器可用来查看、编辑数组元素;对数组中指定的行或列进行图示
点击图标画,创建一个名为“unnamed”的变量;在双击该变量引出一个与图1.7-3类 似的界面。但数组中,除第一个元素为0外,其余均为“空白”。利用这个界面,读者就可 以比较自在地输入较大的数组。 现在的变量编辑器不但能观察和编辑“双精度”数组,也能观察和编辑“字符串”数组、 “胞元”数组、和“构架”数组,而且还能借助“数据链接(Data link)”和“数据刷(Data bush)”与图形窗中的图形相关联(参见第5.5节)。 1.7.4 数据文件和变量的存取 1 借助工作空间浏览器产生保存变量的MAT文件 ● 从工作空间浏览器中选择待保存到文件的(一个或多个)变量。 ● 点击工作空间浏览器工具条图标翳,或选中弹出莱单中的(Save As}项,就弹出 Windows标准的目录和文件名输入对话窗。 ● 选定数据文件的保存目录。数据文件应保存在,或用户选定的目录上,或MATLAB自 动生成的用户工作目录,即C:Documents and Settings\acer\My Documents\MATLAB目 录上。注意:假如不有意识地选定目录,那么数据文件将被保存在MATLAB的当前目 录上。 输入数据文件名,如mydata(注意:.mat扩展名会自动生成),点击[保存]键,就完成 MAT数据文件的产生。 2 借助输入向导Import Wizard向工作空间装载变量 ● 点击工作空间浏览器上的图标园,或MATLAB Desktop下拉菜单{File>mport Data, 引出Windows标准的目录和文件选择对话窗。 ● 在用户希望的目录上,选中MAT数据文件(如光盘For2010 a\mfiles子目录上的 prob datas401.mat);再双击那文件,引出如图1.7-4所示的“Import Wizard'”界面,它 展示出文件所包含的变量列表:再从列表中,通过“勾选”,选择待装载变量(如图中 的t和y):再点击Finish]按键,变量t和y就被装载到工作空间。 Import Tizard =▣x Select variables to import using checkboxes Create variables matching preview. CCreate vectors from each column using column names, CCreate vectors from each row using row names. Variables in C:\Documents and Settings\acer My Documents MATLAB\mydata.mat Import Iame么 Size Bytes 1 2 3 田t 1x201 1608 0.1835 0.3 N 田 1x201 1608 Help <Back IText Finish Generate MATLAB code Cancel 图1.7-4向工作空间装载变量的输入向导 3 存取数据的操作指令save和load 利用save,Ioad指令实现数据文件存取是MATLAB各版都采用的基本操作方法。它的 具体使用格式如下。 save FileName 把全部内存变量保存为FileName.mat文件 save FileName v1 v2 把变量vl,v2保存为FileName.mat文件 23
23 点击图标 ,创建一个名为“unnamed”的变量;在双击该变量引出一个与图 1.7-3 类 似的界面。但数组中,除第一个元素为 0 外,其余均为“空白”。利用这个界面,读者就可 以比较自在地输入较大的数组。 现在的变量编辑器不但能观察和编辑“双精度”数组,也能观察和编辑“字符串”数组、 “胞元”数组、和“构架”数组,而且还能借助“数据链接(Data link)”和“数据刷(Data brush)”与图形窗中的图形相关联(参见第 5.5 节)。 1.7.4 数据文件和变量的存取 1 借助工作空间浏览器产生保存变量的 MAT 文件 从工作空间浏览器中选择待保存到文件的(一个或多个)变量。 点击工作空间浏览器工具条图标 ,或选中弹出菜单中的 {Save As} 项,就弹出 Windows 标准的目录和文件名输入对话窗。 选定数据文件的保存目录。数据文件应保存在,或用户选定的目录上,或 MATLAB 自 动生成的用户工作目录,即 C:\Documents and Settings\acer\My Documents\MATLAB 目 录上。注意:假如不有意识地选定目录,那么数据文件将被保存在 MATLAB 的当前目 录上。 输入数据文件名,如 mydata(注意:.mat 扩展名会自动生成),点击[保存]键,就完成 MAT 数据文件的产生。 2 借助输入向导 Import Wizard 向工作空间装载变量 点击工作空间浏览器上的图标 ,或 MATLAB Desktop 下拉菜单 {File>Import Data}, 引出 Windows 标准的目录和文件选择对话窗。 在用户希望的目录上,选中 MAT 数据文件(如光盘 For2010a\mfiles 子目录上的 prob_data401.mat);再双击那文件,引出如图 1.7-4 所示的“Import Wizard”界面,它 展示出文件所包含的变量列表;再从列表中,通过“勾选”,选择待装载变量(如图中 的 t 和 y);再点击 [Finish] 按键,变量 t 和 y 就被装载到工作空间。 图 1.7-4 向工作空间装载变量的输入向导 3 存取数据的操作指令 save 和 load 利用 save , load 指令实现数据文件存取是 MATLAB 各版都采用的基本操作方法。它的 具体使用格式如下。 save FileName 把全部内存变量保存为 FileName.mat 文件 save FileName v1 v2 把变量 v1, v2 保存为 FileName.mat 文件
save FileName v1 v2 -append 把变量vl,v2添加到FileName.mat文件中 save FileName vI v2 -ascii 把变量vl.v2保存为FileName8位ASCⅡ文件 save FileName vI v2 -ascii -double 把变量vl,v2保存为FileName 16位ASCI文件 load FileName 把FileName.mat文件中的全部变量装入内存 load FileName vl v2 把FileName..mat文件中的vl,v2变量装入内存 load FileName v1 v2 -ascii 把FileName ASCⅡ文件中的vl.v2变量装入内存 〖说明】 ●FileName文件名可以带路径,也可以带扩展名。 ●v1,v2代表变量名:指定的变量个数不限,只要内存或文件中存在:变量名与变量名之 间必须以空格相分隔。 -asci选项使数据以ASCII格式处理。生成的(不带扩展名的)ASCI文件可以在任何 “文字处理器”中被修改。如果数据较多的变量需要进行修改,那么A$CⅡ格式的数 据文件很适用。 ● 如果指令后没有-ascii选项,那么数据以二进制格式处理。生成的数据文件一定带mat 扩展名。 【例1.7-3】数据的存取。(假定内存中己已经存在变量X,Y,Z) (1)建立用户目录,并使之成为当前目录,保存数据 mkdir('c:\','my dir'); 号在c盘上创建目录my dir cd c:\my dir 多使c:\my dir成为当前目录 save saf X Y Z 号选择内存中的X,Y,z变量保存为saf.mat文件 dir %显示目录上的文件 saf.mat (2)清空内存,从saf.mat向内存装载变量Z clear 号清除内存中的全部变量 load saf %把saf.mat文件中的z变量装入内存 who 检查内存中有什么变量 Your variables are: Z 〖说明】 ,如果一组数据是经过长时间的复杂计算后获得的,那么为避免再次重复计算,常使用 save加以保存。此后,每当需要,都可通过load重新获取这组数据。这种处理模式常 在实际中被采用。 1.8 Editor/Debugger和脚本编写初步 对于比较简单的问题,对于那些一次性问题,通过指令窗中直接输入一组指令去求解, 也许是比较简便、快捷的。但当待解决问题所需的指令较多和所用指令结构较复杂时,或当 一组指令通过改变少量参数就可以被反复使用去解决不同问题时,直接在指令窗中输入指令 的方法就显得烦琐和笨拙。M脚本文件就是设计来解决这个矛盾的。 1.8.1 Editor/Debugger M文件编辑器简介 24
24 save FileName v1 v2 -append 把变量 v1, v2 添加到 FileName.mat 文件中 save FileName v1 v2 -ascii 把变量 v1, v2 保存为 FileName 8 位 ASCII 文件 save FileName v1 v2 -ascii -double 把变量 v1, v2 保存为 FileName 16 位 ASCII 文件 load FileName 把 FileName.mat 文件中的全部变量装入内存 load FileName v1 v2 把 FileName.mat 文件中的 v1, v2 变量装入内存 load FileName v1 v2 -ascii 把 FileName ASCII 文件中的 v1, v2 变量装入内存 〖说明〗 FileName 文件名可以带路径,也可以带扩展名。 v1 , v2 代表变量名;指定的变量个数不限,只要内存或文件中存在;变量名与变量名之 间必须以空格相分隔。 -ascii 选项使数据以 ASCII 格式处理。生成的(不带扩展名的)ASCII 文件可以在任何 “文字处理器”中被修改。如果数据较多的变量需要进行修改,那么 ASCII 格式的数 据文件很适用。 如果指令后没有-ascii 选项,那么数据以二进制格式处理。生成的数据文件一定带 mat 扩展名。 【例 1.7-3】数据的存取。(假定内存中已经存在变量 X,Y,Z) (1)建立用户目录,并使之成为当前目录,保存数据 mkdir('c:\','my_dir'); %在 C 盘上创建目录 my_dir cd c:\my_dir %使 c:\my_dir 成为当前目录 save saf X Y Z %选择内存中的 X,Y,Z 变量保存为 saf.mat 文件 dir %显示目录上的文件 . .. saf.mat (2)清空内存,从 saf.mat 向内存装载变量 Z clear %清除内存中的全部变量 load saf Z %把 saf.mat 文件中的 Z 变量装入内存 who %检查内存中有什么变量 Your variables are: Z 〖说明〗 如果一组数据是经过长时间的复杂计算后获得的,那么为避免再次重复计算,常使用 save 加以保存。此后,每当需要,都可通过 load 重新获取这组数据。这种处理模式常 在实际中被采用。 1.8 Editor/Debugger 和脚本编写初步 对于比较简单的问题,对于那些一次性问题,通过指令窗中直接输入一组指令去求解, 也许是比较简便、快捷的。但当待解决问题所需的指令较多和所用指令结构较复杂时,或当 一组指令通过改变少量参数就可以被反复使用去解决不同问题时,直接在指令窗中输入指令 的方法就显得烦琐和笨拙。M 脚本文件就是设计来解决这个矛盾的。 1.8.1 Editor/Debugger M 文件编辑器简介
度Editor-Untitled* ▣X Eile Edit Iext Go Cell Tgols Debug Desktop Mindow Help ¥aX :凸后日盖角自9自,的年◆的 ”口 :唱唱 1.0+ ÷1.1×3必0 1 t=0:pi/50:4*pi: %定义自变量t的取值数组 y=exp(-t/3).*si(3*t):计算与自变量相应的y数组。注武:乘法符前面的小 3 plot (t,y,'-r','LineWidth',2) %绘制曲线 axis([0,4*pi,-1,1]) xlabel('t'),ylabel('y') 运行键 exm010801.m ×ntitled*× script Ln 1 Col 1 OVR 图1.8-1M文件编辑器示图 默认情况下,M文件编辑器(Editor/Debugger)不随MATLAB的启动而开启,而只有 当编写M文件时才启动。M编辑器不仅可以编辑M文件,而且可以对M文件进行交互式 调试:M文件编辑器不仅可处理带.m扩展名的文件,而且可以阅读和编辑其他ASCⅡ码文 件。 M文件编辑器的启动方法有以下几种: ●点击MATLAB桌面上的凸图标,或选中菜单项{File>New>M-File,或直接在指令 窗口输入指令edit,都可以打开空白的M文件编辑器。 ● 点击MATLAB桌面上的己图标,或选中莱单项{File>Open},可引出“Open”文件选 择对话框,在填写所选文件名后,再点[Opn]键,就可引出展示相应文件的M文件编 辑器。在指令窗中,把待打开文件名(经一空格)写在cdit后,指令运行后,文件编辑 器就打开那文件。 ●用鼠标左键双击当前目录窗中的所需M文件,可直接引出展示相应文件的M文件编辑 器。 1.8.2 M脚本文件编写初步 所谓M脚本文件是指:(1)该文件中的指令形式和前后位置,与解决同一个问题时在 指令窗中输入的那组指令没有任何区别。(2)MATLAB在运行这个脚本时,只是简单地从 文件中读取那一条条指令,送到MATLAB中去执行。(3)与在指令窗中直接运行指令一 样,脚本文件运行产生的变量都是驻留在MATLAB基本工作空间中。(4)文件扩展名是 “m” 【例1.8-1】编写解算例1.3-10题目的M脚本文件,并运行之。 操作步骤: 在历史指令窗中,找到算例1.3-10的运行指令,并把它们选中点亮,参见图1.8-2。 ● 点击鼠标右键,选中弹出现场菜单中的{Create M-fle},便引出如图l.8-l的M文件编 辑器。 ● 保存文件的操作是Windows标准操作。首先,选择C:Documents and Settings\acer\My Documents\MATLAB为文件保存目录,然后以exmO10801为文件名进行保存,于是就 得到了exm010801.m文件。 ● 因为C.Documents and Settings\acer\My Documents\MATLAB是MATLAB安装时自s动生 成“在搜索路径上的”目录,所以直接点击M文件编辑器上的工具图标门运行键,就 可以得到如图1.3-4的曲线。 25
25 图 1.8-1 M 文件编辑器示图 默认情况下,M 文件编辑器(Editor/Debugger)不随 MATLAB 的启动而开启,而只有 当编写 M 文件时才启动。M 编辑器不仅可以编辑 M 文件,而且可以对 M 文件进行交互式 调试;M 文件编辑器不仅可处理带 .m 扩展名的文件,而且可以阅读和编辑其他 ASCII 码文 件。 M 文件编辑器的启动方法有以下几种: 点击 MATLAB 桌面上的 图标,或选中菜单项 {File>New>M-File} ,或直接在指令 窗口输入指令 edit,都可以打开空白的 M 文件编辑器。 点击 MATLAB 桌面上的 图标,或选中菜单项 {File>Open} ,可引出“Open”文件选 择对话框,在填写所选文件名后,再点 [Open] 键,就可引出展示相应文件的 M 文件编 辑器。在指令窗中,把待打开文件名(经一空格)写在 edit 后,指令运行后,文件编辑 器就打开那文件。 用鼠标左键双击当前目录窗中的所需 M 文件,可直接引出展示相应文件的 M 文件编辑 器。 1.8.2 M 脚本文件编写初步 所谓 M 脚本文件是指:(1)该文件中的指令形式和前后位置,与解决同一个问题时在 指令窗中输入的那组指令没有任何区别。(2)MATLAB 在运行这个脚本时,只是简单地从 文件中读取那一条条指令,送到 MATLAB 中去执行。(3)与在指令窗中直接运行指令一 样,脚本文件运行产生的变量都是驻留在 MATLAB 基本工作空间中。(4)文件扩展名是 “.m”。 【例 1.8-1】编写解算例 1.3-10 题目的 M 脚本文件,并运行之。 操作步骤: 在历史指令窗中,找到算例 1.3-10 的运行指令,并把它们选中点亮,参见图 1.8-2。 点击鼠标右键,选中弹出现场菜单中的 {Create M-file} ,便引出如图 1.8-1 的 M 文件编 辑器。 保存文件的操作是 Windows 标准操作。首先,选择 C:\Documents and Settings\acer\My Documents\MATLAB 为文件保存目录,然后以 exm010801 为文件名进行保存,于是就 得到了 exm010801.m 文件。 因为C:\Documents and Settings\acer\My Documents\MATLAB是MATLAB安装时自动生 成“在搜索路径上的”目录,所以直接点击 M 文件编辑器上的工具图标 运行键,就 可以得到如图 1.3-4 的曲线