2.2.1 MATLAB界面
MATLAB的界面在MATLAB中称为MATLAB的桌面(Desktop),为了和Windows的桌面相区分,这里称为界面。图2-4所示是Windows操作系统下的MATLAB的界面[3]。
图2-4 MATLAB主界面
从图中可以看出,除了Windows程序常规的菜单和工具条外,MATLAB界面分成两部分,分别为命令窗口区和辅助窗口区。如果觉得命令窗口区过小,也可以将辅助区全部关掉。事实上,早期版本的MATLAB就只有一个命令窗口区。
(1)命令窗口区的主要功能
1)命令窗口区用于输入命令并加以执行。
在命令窗口区输入一个MATLAB命令,并按Enter键,则执行该命令。
MATLAB命令包括:
①一条MATLAB的编程语句。
如输入
则给变量a赋值2。
输入
则进行两个数的加法运算,得到答案8。
②一个MATLAB程序脚本文件名。
如建立一个脚本文件test1.m[4],其中包括以下几句话:
然后,在命令窗口中输入“test”并按Enter键,则执行上述脚本,并得到输出为
③一个MATLAB函数(包括MATLAB的内部函数、外部函数及自己定义的函数)的调用格式
如输入
则表示调用MATLAB的magic函数,并以4为参数,得到结果为
这是一个4阶的魔术方阵,即每行、每列及主副对角线上元素之和都为34。
2)命令窗口区是MATLAB唯一的输出区域
MATLAB运行过程和操作过程中的所有信息都输出在命令窗口区。如,命令执行的结果、运行过程中的警告和错误提示等。
如,在命令窗口区输入
则以红色显示
提示出错,在调用magic函数时,使用了过多的输入参数[5]。
(2)命令窗口的相关设置
要想正确、高效地使用命令窗口,需要了解命令窗口的相关设置。为了让读者了解一些基本的情况,先提几个问题:
①我想重新执行上一次输入的命令,需要重新再输入一遍命令吗?
②运行过程中产生的变量还可再用吗?它们保存于何处?
③如果在命令执行中打开或保存一个文件,那么其默认路径指向何处?
④调用一个命令时,需要写全命令的路径吗?
这几个问题的答案涉及了MATLAB命令窗口的一些基本配置。下面分别叙述。
# command history
MATLAB可将最近执行过的命令(不管对错)保存下来,称为command history。MATLAB最近的版本中还专门提供了一个“command history”窗口,命令历史就显示在窗口中。
在“Command Window”中按上下键会按顺序显示命令历史。要想重新执行以前执行过的命令,用上下键找到后按Enter键即可(如果命令有错,修改后按Enter键即可)。也可在“command history”窗口中双击该命令。在命令窗口可直接选择想重新执行的命令,省去了多次按上下键的麻烦。
# workspace
MATLAB运行时,会有一块内存用于保存所有变量的数据。这些变量会保存到MATLAB关闭为止,除非用户中途清除了它们。
下面着重介绍几个关于工作空间的命令,以便读者迅速掌握workspace的使用方法。掌握了workspace的使用方法,读者的MATLAB水平就会有一个大的提升。
whos
whos的作用是列出目前workspace中的所有变量,显示它们的名字、大小(维数)、所占字节数及数据类型。
例1:生成三个矩阵,并查看其信息。
size一项非常重要。很多时候,程序运行结果不对,只要用whos查看中间变量的size,可能就找到原因了。
whos还有几种其他用法(包括只显示一个或几个变量的信息),请读者自己查看“Help”。
MATLAB专门提供了显示workspace的窗口,workspace的变量全部显示在其中。图2-4所示的工作空间显示窗口就显示了工作空间中目录保存的变量,可以通过双击其中的变量来查看变量的内容。
clear
如前所述,workspace中的变量是放在内存中的,因此,如果在workspace中存放太多过大的变量,内存会被“吃掉”很多。所以,及时清除不用的变量是一个好习惯。
clear命令就是用来清除workspace中的变量的。这个命令很简单,在此不再细述。运行clear一次,会将workspace中所有变量清除。需要强调的是,有时可能不希望清空所有变量,只希望清除某个或某几个变量,那么可以用下面的调用形式:
其中,var1、var2、var3分别代表3个不同的变量。
save和load
前已提及,当MATLAB关闭后,workspace会清除掉所有变量。但有时需要保存某些变量,或者在应用过程中想在清除其他变量之前保存某几个变量,这时可以将变量保存在文件中。
MATLAB专门提供了一种文件格式,用来保存MATLAB变量,这就是.mat文件。
用save命令可以将变量保存成.mat文件,而用load命令可以从文件中调入变量。例如
就可以将workspace中所有变量存入filename.mat文件中,而
可以将filename.mat中所有变量调入,变量名不变。
例2:保存workspace中的变量。
这时无变量显示,表示所有变量被清空。但可以去看一下MATLAB的当前工作目录[6],会发现多了一个文件,就是fabc.mat 。
输出结果为
也可以只保存部分变量,其格式为
关于workspace,还需强调的是ans变量。如果在输入算式时,没有给算式赋值,那么MATLAB会自动将结果赋给ans变量。
例3:ans变量举例。
输出结果为
编程时,这个变量没什么大用。在Command Window的操作中,如果忘了给一个算式赋值,又不想重写一遍(连回翻都懒),可以用这个变量。
# current directory
工作目录就是字面的意思。如果不指定路径,MATLAB打开、保存文件的默认目录就是当前工作目录。
MATLAB打开时默认的工作目录是$\work 。$指MATLAB的安装目录。在启动MATLAB后,指定一个自己的工作目录是一个好的习惯。否则,所有的程序、数据都存在$\work下,这样做至少有两个缺点:第一,所有的工作都混在一起,不利于分类整理;第二,重装系统或重装MATLAB时,很可能由于忘记备份MATLAB安装目录(其中包括$\work)而丢失自己的工作。
指定工作目录的方式很简单。MATLAB会保留最近指定过的工作目录[7]。只需在下拉菜单中选择即可。如果要指定的工作目录未出现在下拉菜单中(未使用过或很久以前使用过),可以单击下拉菜单右边的按钮,打开文件目录管理器并指定一个。
# search path
在编写C程序时,如果想用一个函数,除非这个函数在当前目录中,否则需要用include命令将包含此函数的库包进你的程序。也就是说,要告诉编译程序,到哪里去找这个函数。MATLAB也一样,必须告诉MATLAB去哪里去找这些命令。这些目录称为search path。默认情况下,search path包括MATLAB所有的工具箱及$\work。一般情况下,这也就够了。你自己的函数放在当前目录中,MATLAB的函数都已经在search path中了,不管是调用你的函数,还是调用MATLAB的函数,都可以。
有两种情况可能需要设置search path:第一,要新安装一个工具箱,这个工具箱可以是从网上下载的,也可以是用户自己写的;第二,使用者比较细致,在开发一个稍大的程序时,想将定义的函数单独放在一个目录中。
将新的目录加入search path中的方法很简单。在MATLAB主界面下单击“File”→“Set Path…”,会弹出如图2-5所示的对话框。
图2-5 MATLAB的“Set Path”对话框
用这个对话框设置search path很简单。试着用一下上面的按钮就知道了。
需要强调的是,这些目录在搜索中是有先后顺序的。MATLAB在搜索时的顺序是,当前目录最先,然后按照path的顺序搜索。因此,当在工作目录中写了一个函数,但与MATLAB某函数重名时,MATLAB中的函数将被屏蔽。用户在写函数时,应尽量注意不要与MATLAB的函数重名。