1.4 MATLAB R2013a的工作环境
在一般情况下,可以使用两种方法来打开MATLAB R2013a。在上节中,若已将快捷方式添加到桌面上,则可以双击桌面上的快捷方式图标,打开操作界面。
如果用户没有添加MATLAB快捷方式,则需要在MATLAB的安装文件夹里(默认路径为C:\Program Files\MATLAB\R2013a\bin\win32)选择MATLAB.exe应用程序,同样可以打开MATLAB操作界面。这两种方法的结果完全相同。
1.4.1 操作界面简介
MATLAB R2013a延续了MATLAB R2012b的操作界面。该操作界面中包含大量的交互式界面。例如通用操作界面、工具包专业界面、帮助界面和演示界面等。这些交互性界面组合在一起,构成MALTAB的默认操作界面。
安装后首次启动MATLAB所得的操作界面如图1-5所示,这是系统默认的、未曾被用户依据自身需要和喜好设置过的界面。
图1-5 MATLAB默认的主界面
MATLAB的主界面是一个高度集成的工作环境,有4个不同职责分工的窗口。它们分别是Command Window(命令窗口)、Command History(历史命令窗口)、Current Directory(当前目录窗口)和Workspace(工作空间窗口)。
菜单栏和工具栏在组成方式和内容上与一般应用软件基本相同,本章不再赘述。
1.4.2 Workspace(命令窗口)
在MATLAB默认主界面的中间是命令窗口。因为MATLAB至今未被汉化,所有窗口名都用英文表示,所以“Command Window”即指命令窗口。
命令窗口顾名思义是接收命令输入的窗口,但实际上,可输入的对象除MATLAB命令之外,还包括函数、表达式、语句以及M文件名或MEX文件名等,为叙述方便,本书后续部分将这些可输入的对象统称为语句。
MATLAB的工作方式之一是在命令窗口中输入语句,然后由MATLAB逐句解释执行并在命令窗口中给出结果。命令窗口可显示除图形以外的所有运算结果。命令窗口可从MATLAB主界面中分离出来,以便单独显示和操作,当然也可重新返回主界面中,其他窗口也有相同的行为。
分离命令窗口可以单击命令窗口右上角的按钮,在出现的下拉菜单中选择Undock选项,另外还可以直接用鼠标将命令窗口拖离主界面,其结果如图1-6所示。若将命令窗口返回到主界面中,可单击命令窗口右上角的按钮,在出现的下拉菜单中选择Dock选项。下面分几点对使用命令窗口的一些相关问题加以说明。
图1-6 分离的命令窗口
1.命令提示符和语句颜色
在分离的命令窗口中,每行语句前都有一个符号“>>”,此即命令提示符。在此符号后(也只能在此符号后)输入各种语句并按Enter键,方可被MATLAB接收和执行。执行的结果通常直接显示在语句下方。
不同类型语句用不同颜色区分。在默认情况下,输入的命令、函数、表达式以及计算结果等采用黑色字体,字符串采用红色,if、for等关键词采用蓝色,注释语句用绿色。
2.语句的重复调用、编辑和重运行
命令窗口不仅能编辑和运行当前输入的语句,而且对曾经输入的语句也有快捷的方法进行重复调用、编辑和运行。成功实施重复调用的前提是已输入的语句仍然保存在历史命令窗口中(未对该窗口执行清除操作)。而重复调用和编辑的快捷方法就是利用表1-2所列的键盘按键。
表1-2 语句行用到的编辑键
其实这些按键与文字处理软件中介绍的同一编辑键在功能上是大体一致的,不同点主要是:在文字处理软件中是针对整个文档使用,而MATLAB命令窗口是以行为单位使用这些编辑键,类似于编辑DOS命令的使用手法。
3.语句行中使用的标点符号
MATLAB在输入语句时,可能要用到表1-3所列的各种符号,这些符号在MATLAB中所起的作用见表1-3。
表1-3 MATLAB语句中常用标点符号的作用
提示:在向命令窗口输入语句时,一定要在英文输入状态下输入,尤其在刚刚输完汉字后初学者很容易忽视中英文输入状态的切换。
4.命令窗口中数值的显示格式
为了适应用户以不同格式显示计算结果的需要,MATLAB设计了多种数值显示格式以供用户选用,见表1-4。其中默认的显示格式是:数值为整数时,以整数显示;数值为实数时,以short格式显示;如果数值的有效数字超出了这一范围,则以科学计数法显示结果。
表1-4 命令窗口中数据e的显示格式
需要说明的是,表中最后2个是用于控制屏幕显示格式的,而非数值显示格式。MATLAB所有数值均按IEEE浮点标准所规定的长型格式存储,显示的精度并不代表数值实际的存储精度,或者说数值参与运算的精度,认清这点是非常必要的。
5.数值显示格式的设定方法
格式设定的方法有两种:一是执行MATLAB工作栏中Preferences命令,用弹出的对话框去设定;二是执行format命令,例如要用long格式,在命令窗口中输入format long语句即可。两种方法均可独立完成设定,但使用命令可方便在程序设计时进行格式设定。
不仅数值显示格式可由用户自行设置,数字和文字的字体显示风格、大小、颜色也可由用户自行挑选。其方法还是执行Preferences命令,弹出图1-7所示对话框。利用该对话框左侧的格式对象树,从中选择要设定的对象再配合相应的选项,便可对所选对象的风格、大小、颜色等进行设定。
图1-7 Preferences设置对话框
6.命令窗口清屏
当命令窗口中执行过许多命令后,窗口会被占满,为方便阅读,清除屏幕显示是经常采用的操作。清除命令窗口显示通常有两种方法。
(1)执行MATLAB工具栏的Clear Command→Command Window命令。
(2)在提示符后直接输入clc语句。
两种方法都能清除命令窗口中的显示内容,也仅仅是命令窗口的显示内容而已,并不能清除工作空间和历史命令窗口的显示内容。
1.4.3 Command History(历史命令窗口)
Command History(历史命令窗口)是MATLAB用来存放曾在命令窗口中使用过的语句的。它借用计算机的存储器来保存信息。其主要目的是为了便于用户追溯、查找曾经用过的语句,利用这些既有的资源节省编程时间。
单击历史命令窗口右上角的按钮,在出现的下拉菜单中选择Undock选项,可以将其从MATLAB主界面分离出来。另外还可以直接用鼠标将历史命令窗口拖离主界面,其结果如图1-8所示。从窗口中记录的时间来看,其中存放的正是曾经使用过的语句。
图1-8 分离的历史命令窗口
对历史命令窗口中的内容,可在选中的前提下,将它们复制到当前正在工作的命令窗口中,以供进一步修改或直接运行。其优势在如下两种情况下体现得尤为明显:一是需要重复处理长语句;二是在选择多行曾经用过的语句形成M文件时。
提示:如果只需要执行历史命令窗口中的单条语句,那么双击历史命令窗口中的该条语句即可。
1.复制、执行历史命令窗口中的命令
历史命令窗口的主要应用体现在表1-5中。表中操作方法一栏中提到的“选中”操作,与Windows选中文件时方法相同,同样可以结合Ctrl键和Shift键使用。
表1-5 历史命令窗口的主要应用
用历史命令窗口完成所选语句的复制操作的步骤如下。
(1)用鼠标选中所需第一行。
(2)再按Shift键和鼠标选择所需最后一行,于是连续多行即被选中。
(3)单击工具栏上图标,或在选中区域单击鼠标右键,执行快捷菜单的Copy命令。
(4)回到命令窗口,在该窗口用快捷菜单中的Paste命令,所选内容即被复制到命令窗口。其操作如图1-9所示。
图1-9 历史命令窗口选中与复制操作
用历史命令窗口完成所选语句的运行操作的步骤如下。
(1)用鼠标选中所需第一行。
(2)再按Ctrl键结合鼠标点选所需的行,于是不连续多行即被选中。
(3)在选中的区域右击弹出快捷菜单,选用Evaluate Selection命令,计算结果就会出现在命令窗口中。
2.清除历史命令窗口中的内容。
清除历史命令窗口内容的方法就是执行MATLAB工具栏中的Clear Command→Command History命令。
提示:当执行上述命令后,历史命令窗口当前的内容就被完全清除了,以前的命令再不能被追溯和利用。
1.4.4 输入变量
在MATLAB的计算和编程过程中,变量和表达式都是最基础的元素。如果用户需要深入学习MATLAB,十分有必要了解MATLAB关于定义变量和表达式的基本规定。
在MATLAB中,为变量定义名称需要满足下列规则。
(1)变量名称和函数名称有大小写区别。对于变量名称Mu和mu, MATLAB会认为是不同的变量。exp是MATLAB内置的指数函数名称。因此,如果用户输入exp(0),系统会得出结果1;而如果用户输入EXP(0), MATLAB会显示错误的提示信息“Undefined function 'EXP' for input arguments of type 'double'.”,表明MATLAB无法识别EXP的函数名称,同时系统会提示是否需要输入exp(0),如图1-10所示。
图1-10 函数名称区别大小写
(2)变量名称的第一个字符必须是英文字符。在MATLAB 6.5以后的版本中,变量名称最多可以包含63个字符。因此,变量5xf、_mat等都是不合法的变量名称。
(3)变量名称中不可以包含空格或者标点符号。但是可以包括下划线。因此,变量名称xf_mat是合法的。
尽管MATLAB对于变量名称的限制较少,但还是建议用户在设置变量名称时考虑变量的含义。例如在M文件中,变量名称Outputname比名称a更好理解。
在上面的变量名称规则中,没有限制用户使用MATLAB的预定义变量名称,但是根据笔者的经验,还是建议用户不要使用MATLAB预先定义的变量名称。因为,用户每次启动MATLAB,系统就会自动产生这些变量,表1-6中列出了常见的预定义变量名称。
表1-6 MATLAB中的预定义变量
1.4.5 路径管理
MATLAB借鉴Windows资源管理器管理磁盘、文件夹和文件的思想,设计了当前文件夹窗口。利用该窗口可组织、管理和使用所有MATLAB文件和非MATLAB文件,例如新建、复制、删除和重命名文件夹和文件。甚至还可用此窗口打开、编辑和运行M程序文件以及载入MAT数据文件等。当然,其核心功能还是设置当前文件夹。
Current Folder(当前文件夹窗口)如图1-11所示。下面主要介绍当前文件夹的概念及如何完成对当前文件夹的设置,并不准备在此讨论程序文件的运行。
图1-11 分离的当前文件夹窗口
MATLAB的当前文件夹即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹。用桌面图标启动MATLAB后,系统默认的当前目录是 …\MATLAB\work。
设置当前文件夹就是将此默认文件夹改变成用户希望使用的文件夹,它应是用户提前建立好的用来存放文件和数据的文件夹。
具体的设置方法有如下两种。
(1)在当前目录设置区设置。MATLAB主界面工具栏的右边以及分离的当前目录设置窗口都有当前目录设置区,可以在设置区的下拉列表文本框中直接填写待设置的文件夹名或选择下拉列表中已有的文件夹名。如果需要分离当前文件夹窗口,单击当前文件夹窗口右上角的按钮,在出现的下拉菜单中选择Undock选项即可。
(2)用命令设置。有一组从DOS中借用的文件夹命令可以完成这一任务,它们的语法格式见表1-7。
表1-7 几个常用的设置当前文件夹的命令
用命令设置当前文件夹,为在程序中控制当前目录的改变提供了方便,因为编写完成的程序通常用M文件存放,执行这些文件时是不便先退出再用窗口菜单或对话框去改变当前目录设置的。
1.4.6 搜索路径
MATLAB中大量的函数和工具箱文件是组织在硬盘的不同文件夹中的。用户建立的数据文件、命令和函数文件也是由用户存放在指定的文件夹中。当需要调用这些函数或文件时,找到这些函数或文件所存放的文件夹就成为首要问题,路径的概念也就因此而产生了。
路径其实就是给出存放某个待查函数和文件的文件夹名称。当然,这个文件夹名称应包括盘符和一级级嵌套的子文件夹名。
例如,现有一文件t04_06.m存放在D盘“MATLAB文件”文件夹下的“M文件”子文件夹下的“第4章”子文件夹中,那么,描述它的路径是:D:\MATLAB文件\M文件\第4章。若要调用这个M文件,可在命令窗口或程序中将其表达为:D:\MATLAB文件\M文件\第4章\t04_06.m。
在使用时,这种书写因为过长,很不方便,MATLAB为解决这一问题,引入了搜索路径机制。设置搜索路径机制就是将一些可能要被用到的函数或文件的存放路径提前通知系统,而无须在执行和调用这些函数和文件时输入一长串的路径。
提示:必须指出,不是说有了搜索路径,MATLAB对程序中出现的符号就只能从搜索路径中去查找。在MATLAB中,一个符号出现在程序语句里或命令窗口的语句中可能有多种解读,它也许是一个变量、特殊常量、函数名、M文件或MEX文件等,具体将其识别成什么,涉及搜索顺序的问题。
如果在命令提示符“>>”后输入符号xt,或程序语句中有一个符号xt,那么,MATLAB将试图按下列次序去搜索和识别。
(1)在MATLAB内存中进行检查搜索,看xt是否为工作空间窗口的变量或特殊常量,如果是,则将其当成变量或特殊常量来处理,不再往下展开搜索识别。
(2)上一步否定后,检查xt是否为MATLAB的内部函数,若肯定,则调用xt这个内部函数。
(3)上一步否定后,继续在当前文件夹中搜索是否有名为“xt.m”或“xt.mex”的文件存在,若肯定,则将xt作为文件调用。
(4)上一步否定后,继续在MATLAB搜索路径的所有目录中搜索是否有名为“xt.m”或“xt.mex”的文件存在,若肯定,则将xt作为文件调用。
(5)上述4步全走完后,仍未发现xt这一符号的出处,则MATLAB发出错误信息。必须指出的是,这种搜索是以花费更多执行时间为代价的。
MATLAB设置搜索路径的方法有两种:一种是用菜单和对话框;另一种是用命令。现将两方案分述如下。
1.用菜单和对话框设置搜索路径
在MATLAB主界面的File菜单中有Set Path命令,执行这一命令将打开设置搜索路径的对话框,如图1-12所示。
图1-12 设置搜索路径对话框
对话框左边设计了多个按钮,其中最上面的两个按钮分别是Add Folder…和Add with Subfolders…,单击任何一个按钮都会弹出一个名为浏览文件夹的对话框,如图1-13所示。利用浏览文件夹对话框可以从树形目录结构中选择欲指定为搜索路径的文件夹。
图1-13 浏览文件夹对话框
Add Folder…和Add with Subfolders…两个按钮的不同处在于后者设置某个文件夹成为可搜索的路径后,其下级子文件夹将自动被加入到搜索路径中。
设置搜索路径对话框下面有两个按钮Save和Close,在使用时值得注意。Save按钮是用来保存对当前搜索路径所做修改的,通常先执行Save命令后,再执行Close。Close按钮是用来关闭对话框的,但是如果只想将修改过的路径为本次打开MATLAB使用,无意供MATLAB永久搜索,那么直接单击Close按钮,再在弹出的对话框中作否定回答即可。
2.用命令设置搜索路径
MATLAB能够将某一路径设置成可搜索路径的命令有两个:一个是path;另一个是addpath。
针用path和addpath命令设置搜索路径的区别,下面举例说明。
>>path(path, 'c:/tools/goodstuff') %将路径放在路径表的前面 >>addpath('c:/matlab/myfiles', '-end') %将路径放在路径表的后面
1.4.7 Workspace(工作空间)
在默认的情况下,工作空间浏览器位于MATLAB操作界面的右上方。单击Workspace窗口右上角的按钮,在出现的下拉菜单中选择Undock选项,可以将其从MATLAB主界面分离出来。另外还可以直接用鼠标将Workspace窗口拖离主界面,其结果如图1-14所示。
图1-14 Workspace窗口
当选中Workspace窗口中一个变量时,MATLAB界面菜单栏中的PLOTS选项就会激活,激活前后对比界面如图1-15所示。在图1-15(b)中,MATLAB强大的绘图功能有多种绘图方法供用户选择。
图1-15 PLOTS选项激活前后对比图
除了非常强大的绘图功能,Workspace窗口还有许多其他应用功能,例如内存变量的查阅、保存和编辑等。所有这些操作都比较简单,只需要在Workspace窗口中选择相应的变量,然后右击鼠标,在弹出的快捷菜单中选择相应的菜单选项,如图1-16所示。
图1-16 修改变量名称
在MATLAB中,数组和矩阵都是十分重要的基础变量,因此MATLAB专门提供变量编辑器这个工具来编辑数据。
双击Workspace窗口中任意一个数组,就可以打开该数组的Variables窗口(变量编辑器),如图1-17所示。
图1-17 变量编辑器窗口
用户可以在Variables窗口中直接编辑该变量。对于大型数组,使用变量编辑器会给用户带来很大的便利。
1.4.8 变量的编辑命令
在MATLAB中,用户除了可以在工作空间浏览器中编辑内存变量之外,还可以在MATLAB的命令窗口输入相应的命令,查阅和删除内存中的变量。下面用简单的案例,说明如何在命令窗口中对变量进行操作。
【例1-1】在MATLAB命令窗口中查阅内存变量。
解:具体步骤如下。
在命令窗口中输入who和whos命令,查看内存变量的信息,如图1-18所示。
图1-18 查阅内存变量的信息
注意:who和whos命令适用于MATLAB各种版本,两个命令的区别只在于内存变量信息的详细程度。两个命令结果的列表次序随具体情况而不同。
【例1-2】在例1-1之后,在MATLAB命令窗口中删除内存变量b。
在命令窗口中输入下面命令行。
>> clear b >> who
得到的结果如图1-19所示。
图1-19 删除内存变量
和前面的例子相比,用户可以看出,当用户运行clear命令后,将b变量从工作空间删除,而且在工作空间浏览器中也将该变量删除。
1.4.9 存取数据文件
MATLAB提供了save和load命令来实现数据文件的存取。表1-8列出了命令的常见用法。
表1-8 MATLAB文件存取的命令
上表中列出了几个常见的文件存取命令,用户可以根据需要选择相应的存取命令;对于一些较少见的存取命令,用户可以查阅MATLAB帮助文件。
在MATLAB中,除了可以在命令窗口中输入相应的命令之外,也可以在工作空间中选择相应的按钮,实现数据文件的存取工作。例如,用户可以选择工具栏中的(save workspace)命令,将所有变量保存到mat文件中,如图1-20所示。
图1-20 保存所有变量