3.1 二维曲线的绘制

二维曲线是将平面上的数据连接起来的平面图形,数据点可以用向量或矩阵来提供。MAT-LAB的大量数据计算给二维曲线提供了应用平台,这也是MATLAB有别于其他科学计算的编程语言的特点,MATLAB实现了数据结果的可视化,具有强大的图形功能。

3.1.1 figure命令绘制二维图形

在MATLAB的命令行窗口中输入“figure”,将打开一个如图3-1所示的图形窗口。

在MATLAB的命令行窗口输入绘图命令(如plot命令)时,系统会自动建立一个图形窗口。有时,在输入绘图命令之前已经有图形窗口打开,这时绘图命令会自动将图形输出到当前窗口。当前窗口通常是最后一个使用的图形窗口,这个窗口的图形也将被覆盖,而用户往往不希望这样。学完本节内容,读者便能轻松地解决这个问题。

978-7-111-67965-3-Chapter03-1.jpg

图3-1 新建的图形窗口

在MATLAB中,使用函数figure来建立图形窗口。

该函数主要有下面3种用法。

◆figure:创建一个图形窗口。

◆figure(n):创建一个编号为figure(n)的图形窗口,其中n是一个正整数,表示图形窗口的句柄。

◆figure('PropertyName',PropertyValue,…):对指定的属性PropertyName,用指定的属性值PropertyValue(属性名与属性值成对出现)创建一个新的图形窗口;对于那些没有指定的属性,则用默认值。

figure命令产生的图形窗口的编号是在原有编号的基础上加1,如果用户想关闭图形窗口,则可以使用命令close。如果用户不想关闭图形窗口,仅仅是想将该窗口的内容清除,则可以使用函数clf来实现。

命令clf(rest)除了能够消除当前图形窗口的所有内容以外,还可以将该图形除了位置和单位属性外的所有属性都重新设置为默认状态。当然,也可以通过使用图形窗口中的菜单项来实现相应的功能,这里不再赘述。

3.1.2 多图形显示

在实际应用中,为了进行不同数据的比较,有时需要在同一个视窗下观察不同的图像,这就需要用不同的操作命令进行设置。

1.图形分割

如果要在同一图形窗口中分割出所需要的几个窗口,可以使用subplot命令,它的使用格式如下。

◆subplot(m,n,p):将当前窗口分割成m×n个视图区域,并指定第p个视图为当前视图。

◆subplot('position',[left bottom width height]):产生的新子区域的位置由用户指定,后面的四元组为区域的具体参数控制,宽高的取值范围都是[0,1]。

需要注意的是,这些子图的编号是按行来排列的,例如,第s行第t个视图区域的编号为(s-1)×n+t。如果在此命令之前并没有任何图形窗口被打开,那么系统将会自动创建一个图形窗口,并将其分割成m×n个视图区域。

在命令行窗口中输入下面的程序。

978-7-111-67965-3-Chapter03-2.jpg

弹出如图3-2所示的图形显示窗口,在该窗口中显示两行一列两个图形。

例3-1:显示4×4图形分割。

978-7-111-67965-3-Chapter03-3.jpg

解:MATLAB程序如下。

978-7-111-67965-3-Chapter03-4.jpg

978-7-111-67965-3-Chapter03-5.jpg

运行结果如图3-3所示。

978-7-111-67965-3-Chapter03-6.jpg

图3-2 显示图形分割

978-7-111-67965-3-Chapter03-7.jpg

图3-3 显示4×4图形分割

tiledlayout函数用于创建分块图布局,用于显示当前图窗中的多个绘图。如果没有图窗,MATLAB创建一个图窗并按照设置进行布局。如果当前图窗包含一个现有布局,MATLAB使用新布局替换该布局。它的使用格式见表3-1。

表3-1 tiledlayout命令的使用格式

978-7-111-67965-3-Chapter03-8.jpg

分块图布局包含覆盖整个图窗或父容器的不可见图块网格。每个图块可以包含一个用于显示绘图的坐标区。创建布局后,调用nexttile函数将坐标区对象放置到布局中。然后调用绘图函数在该坐标区中绘图。nexttile函数的使用格式见表3-2。

表3-2 tiledlayout命令的使用格式

978-7-111-67965-3-Chapter03-9.jpg

(续)

978-7-111-67965-3-Chapter03-10.jpg

例3-2:图窗布局应用。

978-7-111-67965-3-Chapter03-11.jpg

解:MATLAB程序如下。

978-7-111-67965-3-Chapter03-12.jpg

运行结果如图3-4所示。

2.图形叠加

一般情况下,绘图命令每执行一次就刷新当前图形窗口,图形窗口将不显示旧的图形。但若有特殊需要,在旧的图形上叠加新的图形,可以使用图形保持命令hold。

例3-3:保持命令的应用。

978-7-111-67965-3-Chapter03-13.jpg

解:MATLAB程序如下。

978-7-111-67965-3-Chapter03-14.jpg

978-7-111-67965-3-Chapter03-15.jpg

图3-4 图窗布局

a)创建坐标区1 b)绘制图形1 c)创建新坐标区2 d)绘制新坐标区图形2

e)创建新坐标区3 f)绘制新坐标区图形3

运行结果如图3-7所示。

978-7-111-67965-3-Chapter03-16.jpg

图3-5 图形1

978-7-111-67965-3-Chapter03-17.jpg

图3-6 叠加图形

978-7-111-67965-3-Chapter03-18.jpg

图3-7 图形3