1引 言
在工业自动化领域,控制系统的分析、设计和系统调试、改造,大量应用仿真技术。CAD技术是在仿真技术的基
础上发展起来的,最早使用的CAD软件包大部分是数字仿真软件包的推广。其中比较著名的软件包为美国的MATLAB。
MATLAB的特点:
1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;
2、具有完备的图形处理功能,实现计算结果和编程的可视化;
3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
4、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。
MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计
算生物学等众多应用领域。MATLAB大大降低了对使用者的数学基础和计算机语言知识的要求,即使用户不懂C或
FORTRAN这样的程序设计语言,也可使用MATLAB轻易地再现C或FORTRAN语言几乎全部的功能,从而设计出功能强大、
界面优美、稳定可靠的高质量程序来,而且编程效率和计算效率极高。本文主要内容包括:
(1)MATLAB的基本数学函数和常用命令的使用;
(2)MATLAB的基本输入/输出函数及其应用;
(3)MATLAB的外部命令调用方法;
(4)MATLAB的条件转移语句、循环语句等常用控制语句的使用;
(5)MATLAB的基本绘图、字符添加、图形控制和图形修饰命令;
(6)MATLAB的基本数值运算方法;
(7)MATLAB图形用户界面(GUI)的简单设计;
尽管MATLAB开始并不是为控制理论与系统的设计者们编写的,但以它“语言”化的数值计算、强大的矩阵处理
及绘图功能、灵活的可扩充性和产业化的开发思路很快就为自动控制界研究人员所瞩目。
关键字: MATLAB;基本操作;控制语句;绘图功能;数值运算
2绪 论
2.1 MATLAB的开发背景及意义
在科学研究和工程应用中,为了克服一般语言对大量的数学运算,尤其当涉及矩阵运算时,编程难、调试麻烦
等困难,美国MathWorks公司于1967年构思并开发了“Matrix Laboratory”(缩写MATLAB,即矩阵实验室)软件包
[1]。
经过不断更新和扩充,该公司于1984年推出了MATLAB的正式版;特别是1992年推出了具有划时代意义的
MATLAB4.0版,并于1993年推出了其微机版,以配合当时日益流行的Microsoft Windows一起使用。到2011年为止先
后推出了MATLAB4.x、MATLAB 5.x、MATLAB 6.x和MATLAB 7.x版,使之应用范围越来越广。从MATLAB 7.x版开始,
MathWorks公司每年发布两个版本的MATLAB。
用MATLAB编程运算与人进行科学计算的思路和表达方式完全一致,所以使用MATLAB进行数学运算就像在草稿纸
上演算数学题一样方便。因此,在某种意义上说,MATLAB既像一种万能的、科学的数学运算“演算纸”,又像一种
万能的计算器一样方便快捷。MATLAB大大降低了对使用者的数学基础和计算机语言知识的要求,即使用户不懂C或
FORTRAN这样的程序设计语言,也可使用MATLAB轻易地再现C或FORTRAN语言几乎全部的功能,从而设计出功能强大、
界面优美、稳定可靠的高质量程序来,而且编程效率和计算效率极高。
目前,在自动控制、图像处理、语言处理、信号分析、振动理论、优化设计、时序分析和系统建模等领域,由
著名专家学者以MATLAB为基础开发的实用工具箱极大地丰富了MATLAB的内容。
模型输入与仿真环境Simulink更使MATLAB为控制系统的仿真与CAD中的应用打开了崭新的局面,并使MATLAB成为
目前国际上最流行的控制系统计算机辅助设计的软件工具。MATLAB不仅流行于控制界,在生物医学工程、语言处
理、图像信号处理、雷达工程、信号分析、计算机技术等各行各业中都有极广泛的应用。
目前MATLAB的最新版本为MATLAB 7.13(R2011b),它包括MATLAB
和Simulink 的新功能和新产品,以及其
他产品的更新和缺陷修复程序。由于最新版的新增功能对于本书涉及的内容没有太大影响,再加上新版本安装程序
大、启动和运行速度慢,故本书仍以目前最为流行的经典版本MATLAB 7.5(R2007b)为基础来进行叙述,但排除了
过渡性很强的内容,使得本书的内容对更高版本的环境仍可完全适用,同时也兼顾了当前仍在较低配置计算机上使
用MATLAB 6.5版本的用户。
注意,对于使用Windows XP系统的用户需要安装MATLAB 6.5及以上的版本,使用Win-dows 7系统的用户必须安
装MATLAB 7.6(R2008a)及以上的版本,否则不能正常使用或安装MATLAB。
2.2 MATLAB操作界面
MATLAB启动后将出现如图所示的操作界面。
由图可知,MATLAB的操作界面由工作窗口、开始按钮功能菜单和工具栏等组成。
(1)MATLAB的工作窗口
在默认状态下,MATLAB的工作窗口由以下一些窗口组成。
①命令窗口(Command Window)
②历史命令(Command History)窗口
③当前工作目录(Current Directory)窗口
④工作空间(Workspace)浏览器窗口
(2)开始按钮
(3)功能菜单
● File——文件操作菜单
● Edit——编辑菜单
● Debug——调试菜单
● Desktop——桌面菜单
● Window——窗口菜单
(4)工具栏
3 MATLAB的基本操作
3.1语言结构
MATLAB命令窗口就是MATLAB语言的工作空间,因为MATLAB的各种功能的执行必须在此窗口下才能实现。所谓窗
口命令,就是在上述命令窗口中输入的MATLAB语句,并直接执行它们完成相应的运算、绘图等。
表 MATLAB中的算术运算符
MATLAB语句的一般形式为:变量名=表达式
其中,等号右边的表达式可由操作符或其他字符、函数和变量名组成,它可以是MATLAB允许的数学或矩阵运
算,也可以包含MATLAB下的函数调用;等号左边的变量名为MATLAB语句右边表达式的返回值语句所赋值的变量的名
字。在调用函数时,MATLAB允许一次返回多个结果,这时等号左边的变量名需用[ ]括起来,且各个变量名之间用逗
号分隔开;等号和左边的变量名可以缺省,此时返回值自动赋给ans[2]
3.2 磁盘文件
因为MATLAB本身可以被认为是一种高效的语言,所以用它可编写出具有特殊意义的磁盘文件来。这些磁盘文件
由一系列的MATLAB语句组成,它既可能是由一系列窗口命令语句构成的文本文件(简称为MATLAB的程序),又可以
是由各种控制语句和说明语句构成的函数文件(简称为MATLAB的函数)。由于它们都是由ASCII码构成的,其扩展名
均为“.m”,故统称为M文件。
由于M文件具有普通的文本格式,因而可以用任何编辑器建立和编辑。但一般最常用、而且最为方便的是使用
MATLAB自带的编辑器,即利用MATLAB命令窗口中的菜单命令File→New→M-File或File→Open打开的M文件编辑窗口
对M文件进行建立和编辑。MATLAB为了进一步方便用户对M文件的建立和编辑,在窗口中也设置了快捷工具。
3.3 库函数和数值显示格式
(1)库函数
为了方便用户,MATLAB提供了丰富的库函数,库函数是根据系统已经编制好了的,提供用户直接使用的函数,
MATLAB中常用的基本数学函数,如表所示。
表 MATLAB的基本函数
除了基本函数外,不同版本的MATLAB还增加了具有不同功能的库函数,也称工具箱。例如控制系统工具箱、模
糊逻辑工具箱、神经网络工具箱和模型预测控制工具箱等。
(2)数值显示格式
尽管MATLAB计算中所有的量为双字长浮点数,但为了方便显示应遵循下面的规则。
在默认情况下,当结果为整数时,MATLAB将它作为整数显示;当结果为实数时,MATLAB以小数点后4位的精度近
似显示;如果结果中的有效数字超出了这一范围,MATLAB以科学计数法显示结果。MATLAB可以使用format命令来改
变显示格式,其调用格式为
format控制参数
其中,控制参数决定显示格式。
3.4 基本输入输出函数
MATLAB的输入与输出函数包括命令窗口输入与输出及图形界面的输入与输出。除上面提到的用于机器间交换数
据的函数语句save和load外,MATLAB还允许计算机和用户之间进行数据交换,允许对文件进行读写操作。如果用户
想在计算的过程中给计算机输入一个参数,则可以使用input()函数来进行,该函数的调用格式为
变量名=input(提示信息,选项)
这里提示信息可以为一个字符串显示,它用来提示用户输入什么样的数据,input()函数的返回值赋给等号左
边的变量名。
MATLAB提供的命令窗口输出函数主要有disp()函数,其调用格式为
disp(变量名)
其中,变量名既可以是字符串,也可以是变量矩阵。
3.5 外部程序调用
MATLAB允许在其命令窗口中调用可执行文件,其调用方法是在MATLAB提示符下键入惊叹号“!”,后面直接跟
该可执行文件即可。MATLAB也允许采用这样的方式来直接使用DOS命令,如磁盘复制命令copy可以由!copy来直接使
用,而文件列表命令dir可以由!dir来调用。事实上,为了给用户提供更大的方便,MATLAB已经把一些常用的DOS命
令做成了相应的MATLAB命令。
4 MATLAB的控制语句
MATLAB是一个功能极强的高度集成化程序设计语言,它具备一般程序设计语言的基本语句结构,并且它的功能
更强,由它编写出来的程序结构简单,可读性强。和其他高级语言一样,MATLAB也提供了条件转移语句、循环语句
等一些常用的控制语句,从而使得MATLAB语言的编程显得十分灵活[3]。
4.1 循环语句
在实际计算中,经常会遇到许多有规律的重复计算,此时就要根据循环条件对某些语句重复执行。MATLAB中包
括两种循环语句:for语句和while语句。
1.for语句的基本格式
在MATLAB中,for语句的基本命令格式为
for 循环变量=表达式1:表达式3:表达式2
循环语句组
end
2.while语句的基本结构
While(条件式)
循环体条件组
end
4.2 程序流控制语句
(1)echo命令
echo on
echo off
echo
echo filename on
echo filename off
echo on all
echo off all
(2)break命令
在MATLAB中,break命令经常与for或while等语句一起使用,其作用就是中止本次循环,跳出最内层的循环。使
用break命令可以不必等到循环的自然结束,而是根据条件,遇到break命令后强行退出循环过程。
(3)continue命令
在MATLAB中,continue命令也经常与for或while等语句一起使用,其作用是结束本次循环,即跳过循环体下面
尚未执行的命令,接着进行下一次是否执行循环的判断。
(4)pause命令
pause()命令使用户暂停运行程序,当再按任一键时恢复执行。其中pause(n)中的n为等待的秒数。
(5)return命令
return命令能使当前正在运行的函数正常退出,并返回调用它的函数,继续运行。
4.3 条件转移语句
在程序设计中,经常要根据一定的条件来执行不同的命令。当某些条件满足时,只执行其中的某个命令或某些
命令。在MATLAB中,条件转移语句包括:if-else-end语句和switch-case-otherwise语句。
1.if-else-end语句的基本格式
在MATLAB中,最简单的条件结构,即if-end语句的命令格式为:
if expression
statements
End
2.switch-case-otherwise语句的基本格式
MATLAB中switch-case-otherwise语句的调用格式为:
switch switch-expression
case case-expression1
statements1;
case case-expression2
statements2;
case case-expression3
statements3;
…
otherwise
statements n;
end
5 MATLAB的绘图功能
MATLAB被控制界广泛接受的另一个重要原因是,它提供了十分方便的一系列绘图命令。例如,线性坐标、对数
坐标、半对数坐标及极坐标等命令,它还允许用户同时打开若干图形窗口,对图形标注文字说明等,它使得图形绘
制和处理等复杂工作变得简单得令人难以置信[4]。
5.1 二维图形
5.1.1基本形式
MATLAB最基本的绘图函数为plot()。如果y是一个n维行向量或列向量,那么plot(y)将绘制一个y元素和y元
素排列序号1,2,…,n之间关系的线性坐标图。如y是一个n ×m维矩阵,那么plot(y)将同时绘出每列元素与其
排列序号1,2,…,n之间关系的m条曲线。
5.1.2 多重线型
在同一图形中可以绘制多重线型,其基本命令格式为:
plot(x1,y1,x2,y2,…,xn,yn)
其中,向量x1,x2,…,xn为x轴变量;向量y1,y2,…,yn为y轴变量。
以上命令可将x1对y1,x2对y2,…,xn对yn的图形绘制在一个图形中,而且分别采用不同的颜色或线型。
5.1.3 图形修饰及文本标注
MATLAB中对于同一图形中的多重线,不仅可分别定义其线型,而且可分别选择其颜色,带有选项的曲线绘制命
令的调用格式为:
plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
其中,向量x1,x2,…,xn为x轴变量;向量y1,y2,…,yn为y轴变量。绘制完曲线后,MATLAB还允许用户使
用它提供的特殊绘图函数来对屏幕上已有的图形加注释、题头或坐标网格。
除了在标准位置书写标题和轴标注以外,MATLAB还允许在图形窗口的位置利用line()和text()命令画直线
或写字符串,它们的调用格式分别为:
line(x,y)和text(x,y,chstr,选项)
其中,line()函数在给定的图形窗口上绘制一条由向量x和y定义的折线;text()函数是在指定的点(x,
y)处写一个chstr绘出的字符串;而选项决定x,y坐标的单位,如选项为‘sc’,则x,y表示规范化窗口的相对坐
标,其范围为0到1,即左下角坐标为(0,0),而右上角的坐标为(1,1)。如省略选项,则x,y坐标的单位和图
中是一致的。
用text()命令可以在图形中的任意位置加上文本说明,但是必须知道其位置坐标;而利用另一个函数gtext
(),则可以用鼠标来对要添加的文本字符串定位。在MATLAB的工作空间中键入下列命令:
>>gtext(′sin(x)′)
则在图中将出现一个十字叉,用鼠标将它移动到添加文本的位置,单击鼠标,gtext(′sin(x)′)命令中的
文本字符串“sin(x)”就自动添加到指定的位置。
5.1.4 图形控制
MATLAB允许将一个图形窗口分割成n×m个部分,对每一部分可以用不同的坐标系单独绘制图形。窗口分割命令
的调用格式为
subplot(n,m,k)
其中,n和m分别表示将这个图形窗口分割的行和列数;k表示每一部分的代号。例如,想将窗口分割成4×3个部
分,则右下角的代号为12,MATLAB最多允许9×9的分割。
尽管MATLAB可以自动根据要绘制曲线数据的范围来选择合适的坐标系,使得曲线能够尽可能清晰地显示出来,
但是,如果觉得自动选择的坐标仍不合适,则可以用手动的方式来选择新的坐标系。调用函数的格式为
axis([xmin,xmax,ymin,ymax])
另外,MATLAB还提供了清除图形窗口命令clf、保持当前窗口的图形命令hold、放大和缩小窗口命令zoom等。
5.1.5 特殊坐标图形
除了基本的绘图命令plot()外,MATLAB还允许绘制极坐标曲线、对数坐标曲线、条形图和阶梯图等,其常用
的函数如表所示。
表 特殊二维曲线绘制函数
表中参数x,y分别表示横、纵坐标绘图数据;c表示颜色选项;ym,yM表示误差图的上下限向量;n表示直方图
中的直条数,默认值为10。
5.1.6 函数图形
MATLAB还允许调用函数fplot()或ezplot()来直接绘制出函数的图形,其函数的调用格式为:
fplot(f,[a,b],N)和ezplot(f,g,[a,b],N)
其中,f,g为函数名,它们既可为自定义的任意M函数,也可为基本数学函数;[a,b]为绘图区间;N为点数,
默认时将取N=25。
例如绘制如图1-3所示的正弦函数在一个周期内的曲线,可采用如下命令:
>>fplot(′sin′,[0,2*pi])
利用函数ezplot()可以直接绘制隐函数曲线,隐函数即满足方程f(x,y)=0的x,y之间的关系式。因为很多
隐函数无法求出x,y之间的关系,所以无法先定义一个x向量再求出相应的y向量,从而不能采用plot()函数来绘
制其曲线。另外,即使能求出x,y之间的显式关系,但不是单值绘制,则绘制起来也是很麻烦的[5]。
5.1.7 利用鼠标绘制图形
MATLAB允许利用鼠标来点选屏幕点,命令格式为:
[x,y,button] =ginput(n)
其中,n为选择点的数目,返回的x,y向量分别存储被点中的n个点的坐标,而button亦为一个n维向量,它的各
个分量为鼠标键的标号,如button(i)=1,则说明第i次按下的是鼠标左键,而该值为2或3则分别对应于中键和右
键。
5.2 二维图形
5.2.1 三维曲线绘制
与二维曲线相对应,MATLAB提供了plot3()函数,它允许在一个三维空间内绘制出三维的曲线,该函数的调用
格式为
plot3(x,y,z,选项)
其中,x,y,z为维数相同的向量,分别存储曲线的三个坐标的值,选项的意义同plot()函数。
例如,利用以下命令,可得到图中所示曲线。
>t=0:pi/50:10*pi;plot3(sin(t),cos(t),t)
图 三维图形
5.2.2 三维曲面绘制
如果已知二元函数z=f(x,y),则可以绘制出该函数的三维曲面图。在绘制三维图之前,应该先调用meshgrid
()函数生成网格矩阵数据x和y,然后可以按函数公式用点运算的方式计算出z矩阵,最后就可以用mesh()等函数
进行三维图形绘制了。
MATLAB提供的mesh()函数用于绘制三维表面网格图,该函数的调用格式为:
mesh(x,y,z,c)
其中,x,y,z分别构成该曲面的x,y和z向量;c为颜色矩阵,表示在不同的高度下的颜色范围,如果省略此选
项,则会自动地假定c=z,亦颜色的设定是正比于图形的高度的,这样就可以得出层次分明的三维图形来。
例如:>>[x,y] =meshgrid(-3:0.1:3,-2:0.1:2);>>z=(x.2-2*x).*exp(-x.2-y.^2-x.
*y);mesh(x,y,z)
执行以上命令便可得到图所示的曲线。
关于三维图形的绘制,常用的其他命令有:
surf(x,y,z) %绘制三维表面图形
surfc(x,y,z) %绘制带有等高线的三维表面图形
surf1(x,y,z) %绘制带有阴影的三维表面图形
waterfall(x,y,z) %绘制瀑布形三维图形
contour(x,y,z) %等高线图形。
5.2.3三维图形视角设置
MATLAB三维图形显示中提供了修改视角的功能,允许用户从任意的角度观察三维图形,实现视角转换有两种方
法。其一是使用图形窗口工具栏中提供的三维图形转换按钮来可视地对图形进行旋转;其二是用view()函数有目
的地进行旋转。
函数view()的调用格式为:
view(α,β)
其中,方位角α为视点在x-y平面投影点与y轴负方向之间的夹角,默认值为-37.5°;方位角β为视点和x-y平
面的夹角,默认值为30°。例如,俯视图可以由view(0,90)来设置;正视图可以由view(0,0)来设置;俯视图
可以由view(90,0)来设置。
5.3 图像处理
MATLAB提供了简单的图像输入输出功能,而图像处理工具箱提供了图像处理的强大功能。
5.3.1 读图像文件
图像文件读取函数imread()的调用格式为:
W=imread(文件名)
该命令将文件中的图像读入MATLAB工作空间,生成8位无符号整型三维数组W,其中W(:,:,1),W
(:,:,2)和W(:,:,3)分别对应于彩色图像的红色、绿色和蓝色分量。如果文件中存储的是灰度图像,则
W为矩阵,存储图像的像素值。
5.3.2 图像显示
MATLAB及其图像处理工具箱中提供了多个图像显示函数,如image(),imview(),ims-how()和imtool
(),它们各有特色。
5.3.3 图像颜色空间转换
彩色图到灰度图的转换可以由函数rgb2gray()完成。另外,不同颜色空间的图像可以通过rgb2hsv(),
hsv2rgb()等进行转换。
5.3.4 图像边缘提取
图像边缘提取是图像识别的重要基础工作。利用MATLAB中的edge()函数,可以提取图像边缘,该函数的调用
格式为:
W1=edge(W,m)
其中,W为灰度图像矩阵;m为提取算法,可以选择′canny′和′sobel′等不同算法,默认算法为Canny算法。
6 MATLAB的数值运算
矩阵运算:MATLAB的基本数据单元是不需要指定维数的复数矩阵,它提供了各种矩阵的运算与操作。它既可以
对矩阵进行整体的处理,也可以对矩阵的某个或某些元素进行单独的处理,所以在MATLAB环境下矩阵的操作同数的
操作一样简单。
6.1 矩阵的实现
在MATLAB语言中不必描述矩阵的维数和类型,它们是由输入的格式和内容来确定的。例如,当A=时,把A当做一
个2×2维的矩阵;当A=[1 2]时,把A当做一个2维行向量;当A=[]时,把A当做一个2维列向量;当A=5时,把A当做一
个标量;当A=1+2j时,把A当做一个复数。
(1)矩阵的赋值
在MATLAB中,矩阵可以用以下几种方式进行赋值。
●直接列出元素的形式;
●通过命令和函数产生;
●建立在文件中;
●从外部的数据文件中装入。
(2)矩阵的元素
MATLAB的矩阵元素可用任何表达式来描述,它既可以是实数,也可以是复数。例如:
>>B=[ -1/3 1.3; sqrt(3)(1+2+3)j]
结果显示:
B=
-0.3333 1.3000
1.7321 0+6.0000i
MATLAB允许把矩阵作为元素来建立新的矩阵。
6.2 矩阵的基本运算
矩阵运算是MATLAB的基础,MATLAB的矩阵运算功能十分强大,并且运算的形式和一般的数学表示十分相似。
(1)矩阵的转置
矩阵转置的运算符为“′”。例如:
>>A=[1 2 3;4 5 6];B=A′
如果A为复数矩阵,则A′为它的复数共轭转置,非共轭转置使用A.′,或者用conj(A)实现。
(2)矩阵的加和减
矩阵的加减法的运算符为“+”和“-”。只有同阶矩阵方可进行加减运算,标量可以和矩阵进行加减运算,但
应对矩阵的每个元素施加运算。例如:
>>A=[1 2 3;4 5 6;7 8 9];B=A+1
(3)矩阵的乘法
矩阵乘法的运算符为“”。当两个矩阵中前一矩阵的列数和后一矩阵的行数相同时,可以进行乘法运算,这与
数学上的形式是一致的。例如:
>>A=[1 2 3;4 5 6;7 8 9];B=[1 1;1 1;1 1];C=AB
在MATLAB中还可将矩阵和标量进行相乘,其结果为标量与矩阵中的每个元素分别相乘。
(4)矩阵的除法
矩阵的除法有两种运算符“\”和“/”,分别表示左除和右除。一般地讲,x=A\B是Ax=B的解,x=B/A是x*A=B
的解。通常A\B≠B/A,而A\B=inv(A)B,B/A=Binv(A)。
(5)矩阵的乘方
矩阵乘方的运算符为“”。一个方阵的乘方运算可以用AP来表示。P为正整数,则A的P次幂即为A矩阵自乘P
次。如果P为负整数,则可以将A自乘P次,然后对结果进行求逆运算,就可得出该乘方结果。如果P是一个分数,如
P=m\n,其中n和m均为整数,则首先应该将A矩阵自乘n次,然后对结果再开m次方。例如:
>>A=[1 2 3;4 5 6;7 8 9];B=A2,C=A0.1
(6)矩阵的翻转
MATLAB还提供了一些矩阵翻转处理的特殊命令,对n×m维矩阵A,如
B=fliplr(A)%命令将矩阵A进行左右翻转再赋给矩阵B,即bij=ai,m+1-j
C=flipud(A)%命令将矩阵A进行上下翻转再赋给矩阵C,即cij=an+1-i,j
D=rot90(A) %命令将矩阵A进行旋转90度后赋给矩阵D,即dij=aj,m+1-i
例如:
>>A=[1 2 3;4 5 6;7 8 9];B=fliplr(A),C=flipud(A)
(7)矩阵的超越函数
MATLAB中exp(),sqrt(),sin(),cos()等基本函数命令可以直接使用在矩阵上,这种运算只定义在矩
阵的单个元素上,即分别对矩阵的每个元素进行运算。超越数学函数,可以在函数后加上m而成为矩阵的超越函数,
例如expm(A),sqrtm(A),logm(A)分别为矩阵指数、矩阵开方和矩阵对数。矩阵的超越函数要求运算的矩阵
必须为方阵。例如
>>A=[1 2 3;4 5 6;7 8 9];B=expm(A),C=sqrtm(A)
7 MATLAB的图形界面
作为强大的科学计算软件,MATLAB也提供了图形用户界面(GUI)的设计和开发功能。MATLAB中的基本图形用户
界面对象分为3类:用户界面控件对象(uicontrol)、下拉式菜单对象(uimenu)和内容式菜单对象
(uicontextmenu)。其中,uicontrol()函数能建立按钮、列表框、编辑框等图形用户界面对象;uimenu()函
数能建立下拉式菜单和子菜单等图形用户界面对象;uicontextmenu()函数能建立内容式菜单用户界面对象。利用
上述函数,通过命令行方式,进行精心的组织,就可设计出一个界面良好、操作简单、功能强大的图形用户界面。
另外,为了能够像Visual Basic,Visual C++等程序设计软件一样简单、方便地进行GUI的设计与开发,MATLAB
提供了一套方便、实用的GUI设计工具。GUI设计工具比较直观,适宜进行被设计界面上各控件的几何安排。但从总
体上讲,GUI设计工具远不如直接使用指令编写程序灵活。由于篇幅所限,本文仅简单介绍GUI设计工具——GUI
Builder。
7.1 启动GUI Builder
在MATLAB命令窗口中,可以用以下三种方法启动GUI Builder。
(1)在MATLAB的命令窗口中直接键入guide命令;
(2)在MATLAB工作窗口中,利用菜单命令File→New→GUI;
(3)在MATLAB左下角“Start”菜单中,单击“MATLAB”子菜单中的“GUIDE(GUI Build-er)”选项。
选择以上任意一种方法,便可打开GUI设计工具的模板界面,如图所示。
图 GUI设计模板界面
MATLAB为GUI设计准备了4种模板:Blank GUI(默认)、GUI with Uicontrols(带控件对象的GUI模板)、GUI
with Axes and Menu(带坐标轴与菜单的GUI模板)、Modal Question Dialog(带模式问话对话框的GUI模板)。不
同的设计模板,在对象设计编辑器中的显示结果是不同的。在GUI设计模板界面中选择一种模板,然后单击【OK】按
钮后,就会显示对象设计编辑器(Layout Editor)。图所示为选择Blank GUI模板后显示的对象设计编辑器界面。
图 对象设计编辑器界面
7.2 对象设计编辑器
在对象设计编辑器界面的顶端工具栏中,特别给出了快捷工具按钮:位置调整(Align Objects)按钮、菜单编
辑器(Menu Editor)按钮、Tab顺序编辑器(Tab Order Editor)按钮、M文件编辑器(M-file Editor)按钮、对
象属性编辑器(Property Inspector)按钮、对象浏览器(Object Browser)按钮和显示设计结果(Run)按钮。利
用菜单编辑器,可以创建、设置、修改下拉式菜单和内容式菜单。另外,利用菜单编辑器窗口界面左下角的第一个
按钮【Menu Bar】也可创建下拉式菜单;第二个按钮【Context Menu】用于创建内容式菜单。而菜单编辑器界面左
上角的第一个按钮用于创建下拉式菜单的主菜单;第三个按钮用于创建内容式菜单的主菜单;第二个按钮分别用于
创建下拉式菜单和内容式菜单的子菜单。利用Run工具按钮可以随时查看设计的图形用户界面的显示结果。
用鼠标拖拉对象设计区(Layout Area)左边的工具按钮,便可在对象设计区依次生成Push Button,Slider,
Radio Button,Check Box,Edit Text,Static Text,Pop-up Menu,ListBox,Toggle Button,Axes,Panel,
Button Group,ActiveX Control等图形控件对象。创建对象后,利用鼠标右键可显示所选对象的一个弹出式菜单,
可从中选择某一个子菜单项进行相应的设计。通过双击该对象,也会显示该对象的属性编辑器(Property
Inspector),并对其属性值进行设置。在对象设计区单击鼠标右键,会显示与编辑、设计整个图形窗口有关的弹出
式菜单。
8结 论
本文介绍了当前国际控制界最为流行的应用软件——MATLAB的特点及其使用方法。由于MATLAB的功能十分强
大,不可能对MATLAB的所有函数进行一一介绍,本文仅介绍了MATLAB的一些常用函数及其使用方法,关于各个函数
的详细使用方法,可以在MAT-LAB的命令窗口中利用以下命令获得该函数的联机帮助。注意这里的函数名后不加括
号,即>>help 函数名
致 谢
转眼已是毕业季,几年的学习,收获的不仅仅是丰厚的知识,更重要的是在学习中形成的思维逻辑、语言表达
和广阔的眼界。
在此,感谢我的导师彭雯老师这段时间对我的悉心指导。老师的细致教导和独特的思维给予我无尽的启迪;开
朗的个性和宽容的胸怀给我树立了学习的榜样;感谢我的爸爸妈妈,你们的养育教导之恩无以为报,你们永远健康
开心是我最大的心愿。
计算机科学与技术是一门在飞速发展的学科,不积跬步无以至千里,我将秉承终身学习的理念,醉心于计算机
科学与技术,努力学习,不断追求进步。
毕业在即,我会铭记师长们的教诲,今后加倍努力,谢谢各位师长们。