5  Command History窗口

MATLAB的命令行窗口提供了非常友好的交互功能,用户可以在此环境中边思考边验证。完成设计之后,可以通过MATLAB的历史记录功能将已验证的命令再次提取出来。这种记录命令的能力就是在MATLAB的历史记录窗口(Command History)中利用相应的命令完成的。

在2014a及以后版本中,历史记录窗口不再出现在MATLAB默认布局中,同时增加了通过向上箭头调出历史记录窗口的功能(如图1-13),并对历史记录功能做了加强,增加了“标记错误命令”、“搜索(区分大小写)”、“筛选”以及“显示运行时长”等功能。

如果读者希望将历史记录窗口像之前版本那样嵌入到桌面中,那么可以在布局(Layout)选项中进行设置,然后选择命令即可将其嵌入桌面,如图1-14所示。另外和命令窗口相同,单击历史记录窗口上的 按钮,然后选择就可以浮动该窗口,令其在命令行可以通过向上箭头调出。

嵌入桌面之后的历史记录窗口如图1-15所示。在历史记录窗口中,如果一行命令在运行过程中出错,那么在其最左端会有红色的标记,这一标记可以很容易的让用户明白哪些命令出错了,对于分析出错原因或者调试程序来说是非常有用的。另外,如果几行命令是作为一组,整体运行的,那么在这组命令的最左端会有方括号将其括起来,如图中所示的for循环等。

单击历史记录窗口上的 按钮,可以选择查找、显示运行时间等,如图1-16所示。通过勾选【Show ExecutionTime】选项即可在历史记录窗口中显示该行命令的运行时间,如图1-15中所示。在此菜单中单击【Find…】选项,即可调出查找工具栏。例如我们在工具栏中查找首字母为a的命令,那么查找到的命令就黄色高亮显示。如果我们单击图标,即可将所有符合条件的查找结果筛选出来,具体的结果如图1-17所示。

图1-13  历史记录的调出

图1-14  历史记录窗口的嵌入

图1-15  历史记录窗口的标记

图1-16  历史记录窗口菜单

图1-17  历史记录窗口查找功能

在历史记录窗口中,记录了在MATLAB命令窗口中键入的所有命令,包括每次启动MATLAB的时间,以及启动后在命令行中键入的所有MATLAB命令。这些命令不但可以记录在历史记录窗口中,而且可以再次执行。通过历史记录窗口执行历史命令的方法有以下几种。

(1)用鼠标双击某一条命令,就可以将其发送到命令窗口立即执行。

(2)选中想要再次执行的命令,然后复制到命令窗口中。

(3)选中需要执行的命令,单击鼠标右键,选择【EvaluateSelection】选项(或者按快捷键F9),即可运行相应的命令。此方法可以使一次需要执行多行命令时更加方便。

另外,在历史记录窗口中也可以通过这些命令记录直接创建M文件。

为了方便以后使用,用户可能希望将命令窗口中使用的命令通过文件的方式保存起来。MATLAB为此作了人性化考虑,提供了diary命令,可以实现上述功能。diary命令用于产生“日志”文件,即把当前命令窗口中的所有内容(包括命令和结果等)如实地记录为ASCII文件加以保存。

用户如果想把命令窗口中的全部内容记录为“日志”文件,可以按照下面的步骤进行。

(1)将日志文件的目录(如D: \workdir)设置为当前目录。设置目录可以通过命令窗口的“cd d: \ workdir”命令实现(同样也可以通过鼠标在当前目录窗口或工作目录路径进行操作)。

(2)在MATLAB中运行命令diary xxx(名字可任取)。此后,命令窗口显示的内容(包括命令、结果、提示信息等)将被全部记录下来。

(3)运行关闭命令diary off后,内存中保存的操作内容就将全部记录在D: \workdir目录下的名为xxx的目录文件中。

需要指出的是,在diary中创建的日志文件为纯文本文档格式,此文件不能直接在MATLAB中运行,但可以通过MATLAB中的M文件编辑器或其他文本读写软件阅读和编辑。另外,diary函数记录命令的功能仅在执行了diary命令之后的MATLAB会话中有效。如果关闭MATLAB后再启动,则需要重新输入diary命令。

6 Current Folder窗口

MATLAB加载任何文件、执行任何命令都是从当前的目录下开始的,因此MATLAB提供了当前目录窗口(Current Folder)。该窗口默认情况下位于MATLAB界面的左上方。和前面的几个窗口一样,当前目录窗口也可以单击窗口右上角的 按钮,通过Dock和 Undock选项实现浮动窗口与内嵌窗口的转换。浮动的当前目录窗口如图1-18所示。

MATLAB的当前路径是指所有文件的保存和读取都是在这个默认的路径下进行。这个工作路径可以在桌面工具栏下方的工作路径栏进行修改。在MATLAB R2008b之后的版本中,路径的修改和Windows 7操作系统中的修改方式类似,可以直接修改任何一级路径名,这样操作起来更加方便。

右键单击桌面上的MATLAB启动图标,单击“属性”一项,弹出的属性对话框如图1-19所示。其中有一个“起始位置”的文本输入框,在这里可以设置MATLAB启动时的默认工作路径。

图1-18  当前目录窗口

通过对工作目录的设置,可以更改MATLAB在调用函数过程中的搜索路径。选择桌面工具栏中的【Set Path】菜单项(如图1-19),可以弹出路径设置对话框(如图1-20所示),从中可以设置相应的搜索路径。搜索路径关系着MATLAB在运行一句命令时如何选择函数,搜索被运行函数的顺序,本书将在后续章节对此作详细介绍。

图1-19  MATLAB启动属性对话框

图1-19  “Set Path”设置

图1=20   “Set Path”对话框

7 Workspace Browser和Variable Editor窗口

7.1 Workspace Browser窗口

MATLAB要处理各种各样的数据,这需要有一个专门的内存空间来存放它们,这个地方就是MATLAB的Workspace。数据存放在工作空间中,可以随时被调用。工作空间窗口(Workspace)是MATLAB的重要组成部分。在工作间窗口中将显示所有目前内存中的MATLAB变量的变量名、数据结构、字节数、类型、以及最大值、最小值、平均数、方差等统计信息,不同的变量类型分别对应不同的变量名图标。工作空间窗口没有打开时,可以单击工具栏中的【Layout】|【Workspace】菜单命令打开。默认情况下,MATLAB工作空间窗口在桌面的左下角。另外,MATLAB的工作空间窗口不仅可以内嵌在MATLAB的用户界面中,和命令窗口相同,单击历史记录窗口上的 按钮,然后选择【Undock】选项就可以浮动该窗口,如图1-21所示。若希望重新将工作空间窗口嵌入到MATLAB的界面中,可以单击按钮,然后选择【Dock】选项即可。

7.2 Variable Editor窗口

用鼠标左键双击Workspace中的变量名,比如图1-21中的W,就会弹出Variable Editor 窗口。通过Variable Editor窗口可以查看变量的内容,还可以对变量进行各种编辑操作。VariableEditor 窗口如图1-22所示,通过双击需要修改的数据单元,即可对相应的数据进行修改。在Variable Editor窗口用户可以选择所需要的元素,然后通过【PLOT】选项卡中的绘图工具进行快速绘图。在【VARIABLE】选项卡中,用户可以对变量进行插入、删除、转置、排序等操作,如图 1-23所示。

图1-21  工作空间窗口

图1-22  Variable Editor窗口PLOT选项卡

图1-23  Variable Editor窗口VARIABLE选项卡

8  命令行辅助功能与Function Browser

在MATLAB中,命令行的辅助功能在逐渐加强。最显著的特点是在R2008b之后的版本中加入了Function Browser,即函数浏览器,这使得MATLAB在查询、输入函数的过程中更加人性化了。这就是本书强烈建议使用MATLAB新版本的一个体现,尤其是对初学者来说,这会在用户的学习过程中提供更多的方便。

8.1分隔符匹配

在MATLAB命令行和编辑器中输入命令的过程中,MATLAB会提醒用户哪些分隔符是相对应的。比如说,在输入引号、括号、循环体的过程中,MATLAB会将相匹配的分隔符高亮显示。

8.2Tab键的使用

MATLAB可以帮助用户完成已知命令的输入,这样用户就可以减少拼写错误,并减少查询帮助和其他书籍的时间。MATLAB可以帮助用户完成以下内容的输入:

(1)Workspace中的变量,包括结构数组;

(2)在当前目录下或者搜索路径中的函数或者模型;

(3)MATLAB对象;

(4)文件名和目录,包括面向对象编程组和类目录;

(5)图形句柄属性。

用户需要做的就是输入函数或者对象的前几个字母,然后按Tab键。在MATLAB编辑器中也可以使用Tab键完成输入。下面举例说明在命令行中如何使用Tab键来完成输入。

如果Workspace中有变量costs_may,那么在命令行中只需要输入:

>>costs

然后按Tab键,MATLAB即可自动完成变量名字的输入,显示为:

>> costs_may

之后用户可以在此基础上添加其他的运算符、变量、函数等,完成表达式之后按回车键即可运行相应的命令。

如果在变量空间中还有一个变量名为costs_april,那么在输入costs并按Tab键之后,则会出现两个候选提示,只要通过使用上下键移动光标或者鼠标单击就可以完成输入,具体操作如图1-24所示。

8.3函数语法提示

函数语法提示就是在输入一个表达式的时候,可以看到一个弹出窗口中提示有函数应该有哪些输入变量。当用户知道了函数的拼写方法,但是不太确定应该输入哪些变量的时候,函数语法提示的功能则非常有用,可以节省很多查看help文档的时间。

通常函数的语法提示只是提示基本的函数语法结构,如果用户需要更为详细的使用说明,则可使用Function Browser或者Help替代。

只有知道了函数的确切拼写方式之后才可以应用函数语法提示。如果用户不知道函数的确切拼写,则可使用Tab键的完成功能或者Function Browser等帮助文档操作。

如图1-25所示,在输入了函数名称与括号之后等待两秒,就会弹出函数语法提示的窗口,用户按照提示的顺序输入相应的变量即可。

图1-24  Tab键使用示例

图1-25  函数语法提示

8.4Function Browser

MATLAB R2008b之后的版本中增加了Function Browser,即函数浏览器,通过Function Browser可以很方便地查找函数。

Function Browser在命令行中特别有用。通过Function Browser,可以像在Help浏览器中一样查找函数,但是使用起来可以使用户的工作更加流畅。

可以使用Shift+F1快捷键或者命令提示符前面的 图标打开Function Browser,如图1-26所示。

在Function Browser中输入需要查找的函数,然后回车,就可以得到所有与输入的关键词相关的函数列表。用鼠标左键单击函数名称,就会弹出一个函数使用说明的窗口,如图1-27所示。Function Browser的方便之处在于,在查找到需要的函数之后,直接双击即可将该函数插入命令行中的光标位置处。这一点是Help所不具备的,实际使用起来非常方便。

图1-26  Function Browser

图1-27  使用Function Browser查找函数