第三章 matlab 图形系统

49
第第第 MATLAB 第第第

Upload: eavan

Post on 21-Jan-2016

78 views

Category:

Documents


0 download

DESCRIPTION

第三章 MATLAB 图形系统. §3.1 简单图形绘制. 本节以一个简单的正弦函数曲线 例来说明图形的绘制,这一过程 在 MATLAB 中很简单。. §3.1 简单图形绘制. 设要产生从 0 到 2pi 之间的正弦函数,则 可按下列步骤进行: 1. 产生 x 轴、 y 轴数据: x=0:pi/20:2*pi y=sin(x) 2. 打开一个新的图形窗口: figure(1). §3.1 简单图形绘制. 3. 绘制出正弦曲线: plot(x, y, ‘ r- ’ ) ‘ r- ’ 表示以红色实线绘制出正弦曲线。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第三章   MATLAB 图形系统

第三章

MATLAB 图形系统

Page 2: 第三章   MATLAB 图形系统

§3.1 简单图形绘制

本节以一个简单的正弦函数曲线例来说明图形的绘制,这一过程在 MATLAB 中很简单。

Page 3: 第三章   MATLAB 图形系统

§3.1 简单图形绘制 设要产生从 0 到 2pi 之间的正弦函数,

则可按下列步骤进行:1. 产生 x 轴、 y 轴数据: x=0:pi/20:2*pi

y=sin(x)

2. 打开一个新的图形窗口: figure(1)

Page 4: 第三章   MATLAB 图形系统

§3.1 简单图形绘制3. 绘制出正弦曲线: plot(x, y, ‘r-’)

‘r-’ 表示以红色实线绘制出正弦曲线。4. 给图形加上栅格线: grid on

这样就可以得到如书 P81 图 3.1 所使得正 弦曲线。 从这一过程看出,在 MATLAB 中建立曲

线图是很方变的。

Page 5: 第三章   MATLAB 图形系统

§3.1 简单图形绘制

我们还可以将图形窗口进行分割,从而可在每个窗口各绘制一条曲线。例如将图形窗口分割成 2*2 的窗格,分别绘制出正

弦、余弦、正切、余切函数曲线。 程序和图见书 P82 页。

Page 6: 第三章   MATLAB 图形系统

§3.2 图形标注

绘制图形后,还应该给图形进行标注。例如,可给每个图加上标题、坐标轴标记和曲线说明等。

Page 7: 第三章   MATLAB 图形系统

§3.2 图形标注例如: 给书图 3.1 加上标题和轴标记,可

输入: title(‘sin(\alpha)’)

xlabel (‘alpha’)

ylable(‘sin(\alpha)’)

则可得到如书图 3.3 所示的结果。这里 \alpha 表示,取自于 text 字符集。

Page 8: 第三章   MATLAB 图形系统

§3.2 图形标注

1. 利用 legend 函数可对图中的曲线进行 说明。 例如,在同一张图上可得到两条曲线, 这时利用 legend 函数可方便的标注各自 的曲线。注意:字符串中 ^ 表示上标, _ 表示下标。

Page 9: 第三章   MATLAB 图形系统

§3.2 图形标注2. 利用 text 函数也可以标注函数曲线。 对于更复杂的曲线图形,可利用 gtext 函 数对曲线进行标注。 gtext 与 text 类似,只是可以利用鼠标来 放置文本,因此可交互式的对图形曲线 进行标注。

Page 10: 第三章   MATLAB 图形系统

§3.3 对数和极坐标系图形绘制

1. 有时变量变化范围非常大,如 x 轴从 0.01 到 100 ,这时如果仍采用 plot

灰土,就会失去局部可视性。因此应用对数坐标系来绘图。在对数坐标中可清晰地看到局部。

Page 11: 第三章   MATLAB 图形系统

§3.3 对数和极坐标系图形绘制

2. 对于任一矩阵,通过 eig 函数可求其特征值。为了解这一矩阵的特性,我们期望直观地显示出特征值。由于特征值一般为复数,因此在极坐标上绘制它会更方便、更直观。

Page 12: 第三章   MATLAB 图形系统

§3.4 复杂图形绘制

在同一个图形窗口中绘制多条曲线是MATLAB 的一大功能,有多种方法。一 . 将曲线数据保存在 n*m 的矩阵 y 中,

而 x

为相应的 x 轴向量 n*1 或 1*n ,则 plot(x,y) 可

在同一个图形窗口中绘制出 m 条曲线。

Page 13: 第三章   MATLAB 图形系统

§3.4 复杂图形绘制

注意:方法一是用于由其它软件产生的数据,然后由 load 命令读入 MATLAB 到中,然后再绘制出曲线。

二 . 绘制多条曲线的第二种方法是在一个 plot 函数中分别指定每条曲线的数据。

Page 14: 第三章   MATLAB 图形系统

§3.4 复杂图形绘制

三 . 利用 hold on 函数绘制多条曲线 .

先在图形窗口中绘制出第一条曲线,然后再利用 hold on ,使之保持原有图形,

最后绘制出第二条、第三条…曲线。 利用这种方法可在绘制函数曲线后,同 时在数据点上以记号标注。

Page 15: 第三章   MATLAB 图形系统

§3.4 复杂图形绘制

四 . 利用函数 plotyy 可绘制出双 y轴

的图形,这样在同一张图上表 示两条曲线时,可拥有各自的 y 轴。

Page 16: 第三章   MATLAB 图形系统

§3.5 坐标轴控制1. 利用 box 函数可控制图形的边框, box off

可关闭图形边框,这时图形只有 x-y 轴,而没有上、右边框,这样绘制的图形与通常在坐标纸上所画的图形一致。2. 利用 axis 可控制坐标轴的刻度,这样在两个图形对比时,可有相同的比例因子。

Page 17: 第三章   MATLAB 图形系统

§3.5 坐标轴控制

3.axis equal 可是输出图形的 x 、 y 轴等长,因此在图形窗口绘制的圆或椭圆都可以用圆来表示。

4.axis off 命令可关闭坐标轴的显示,从而 可产生不含坐标轴的图形。

Page 18: 第三章   MATLAB 图形系统

§3.6 颜色控制1. 在绘制曲线时可直接指定曲线的颜色,在标注文本如 title 、 xlabel 、 ylabel 、 zlabel 、text 命令中,可利用文本特性 color 来指定文本颜色。2. 利用 colormap 函数可改变每种颜色的色调。 MATLAB 提供了许多种不同用途的颜色板。

Page 19: 第三章   MATLAB 图形系统

§3.6 颜色控制 MATLAB专门提供了人体脊骨的图像,

利用 bone 颜色板可清晰的显示这一图像。 MATLAB 程序为: load spine image(X) colormap bone title(‘人体脊骨图’ )

Page 20: 第三章   MATLAB 图形系统

§3.8图形函数 表 3-1

一 .基本图形和图形操作 1.plot 功能:线性二维图形。 说明:当 Y 为实向量时, plot(Y) 以 Y 的序号作为 X 轴,绘制出二为曲线;当以 Y 为实向

量时,则 plot(Y) 相当于 plot(real(Y),imag(Y)),即 Y 的实部为 X 轴,虚轴为虚轴为 Y 轴。 plot(X1,Y1,…) 可按 (X1,Y1),(X2,Y2),… 成对绘制出曲线,而且在同一张图上以不同形式

显示。如果 Xn,Yn至一位矩阵,则取矩阵的行或列与另一个向量构成数据对绘制出曲线。 plot(x1,y1,linespec,…) 可绘制出所有由三袁组 (Xn,Yn,LineSpec) 指定的曲线,其中 Line

Spec 用于指定线型,标记和线的颜色。 plot(…,’PorpertyName’,PropertyValue,…) 可设置图形对象的属性。 h=plot(…) 可绘制出图形的同时,得到各条曲线的句柄向量

Page 21: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

2.loglog

功能 : 对数坐标图形。 说明: loglog 函数类似于 plot 函数,唯一不同的是在

绘图时以对书坐标来标注 。

Page 22: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

3.semilogx,semilogy 功能 :半对数坐标图形。 说明: semilogx 和 semilogy 与 plot,loglog 函数类似,只是 X 轴 Y 轴采用对

数表示。4.polar 功能:绘制极坐标图形。 说明: polar 函数可在迪卡尔坐标内绘制出一极坐标形式的曲线,并可绘制

出极坐标栅格线。

Page 23: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

5.poltyy 功能 : 绘制左右边都饱含 Y 轴的图像。 说明: poltyy(X1,Y1,X2,Y2) 可绘制出 (X1,Y1) 曲线,其 Y 轴标记在左边 , 同

时绘制出 (X1,Y1) 曲线 , 其 Y 轴标记在右边。 poltyy(X1,Y1,X2,Y2,’function’) 可利用字符串 function 制定的函数来取代磨人的 plot 函数。 Function 可取 polt,semilogxsemilogy,loglog,stem及用户自己缩写的 M 函数文件。

Page 24: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

6.figure 功能 : 建立图形(窗口)。 说明: figure 可打开一个新的窗口,以供后续绘图命令输出图形。 figure(‘PorpertyName’,PorpertyValue,…), 在建立图形的同时,设置图形的指定特性,参见表 3.3 。 figure(h) 有两种情况,当h 为已存在图形的句柄时,则打开这一图形作为当前图形,当h 不为句柄且为整数时,则 figure(h) 可建立一图形窗口,并给他分配句柄h.

h=figure(…) 还可得到句柄。

Page 25: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

7.close 功能 : 关闭图形窗口,即删除指定的图形。 说明: close 可删除当前图形;close(h) 可删除句柄为 h 的图形;close name 将删除由 name 指

定的所有图形;close all 可删除所有图形(不包括句柄隐含的图形);close all hidden 可删除所有的图形。

status=close(…)除了删除图形外,还可以得到删除操作的状态: .1 删除成功 .0 删除失败

Page 26: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

8.clf 功能:清除当前图形窗口。 说明: clf 可从当前图形中删除所有的图形对象,但不删除这一图形窗口。这

一点与 close 命令不同。 clf reset 可在当前图形中删去所有的图形对象,并将所有的图形特性(position除外)复位到缺省位。

Page 27: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

9.gcf 功能:获得当前图形的句柄。 说明: h=gcf 可获得当前图形的句柄。 h=get(0,’CurrentFigure’) 这时会得到一个空阵列 h 。

Page 28: 第三章   MATLAB 图形系统

§3.8图形函数一 .基本图形和图形操作

10.refesh 功能:重画当前图形。 说明 : refesh 可重新划出当前图形 ;refesh(h) 可重新划出由 h 指定

的图形。

Page 29: 第三章   MATLAB 图形系统

§3.8图形函数二 . 图形注释

1.title 功能:给当前坐标系加上标题。 说明: title(‘string’) 可将指定字符串作为标题; title(fname) 可将执行

制定函数 fname 是产生的字符串作为标题。 title(…’PorpertyName’,PorpertyValue,…) 可为标题文本指定特性。 h=title(…) 还可以得到比标题文本的控制句柄。

Page 30: 第三章   MATLAB 图形系统

§3.8图形函数二 . 图形注释

2.text 功能:在当前坐标系中建立文本对象。 说明: text(x,y,’string’) 可在土星的( x,y)点上放置指定的字符串, (x,y) 的

单位由 Unit 特性决定; text(x,y,z,’string’) 用在三维图像上。 text(…’PorpertyName’,PorpertyValue,…) 可在放置字符串的同时 , 指定文

本的特性 ; 见表 3.4 text(‘PotpertyName’,PorpertyValue,…) 用来只指定文本的特性 ; h=text(…) 还可以得到文本对象的句柄。

Page 31: 第三章   MATLAB 图形系统

§3.8图形函数二 . 图形注释

3.gtext 功能:利用鼠标在二维图形上放置文本。 说明 : gtext(‘string’) 可利用鼠标将指定字符串放在图

形的任意位置; h=gtext(‘string’) 还可以得到该文本图形对象的句柄。

Page 32: 第三章   MATLAB 图形系统

§3.8图形函数二 . 图形注释

4.xlable,ylable,zlable 功能: x,y,z 轴的标记。 说明 : 利用 xlable,ylable,zlable 可给 x,y,z 轴加

上标记。 有关可设定的文本特性可参见 text 中的表 3.4

Page 33: 第三章   MATLAB 图形系统

§3.8图形函数二 . 图形注释

5.legend 功能 : 给每个坐标系加上插图说明。 说明 : legend 可在土上给出插图说明,对图中的每

一条曲线, legend 会在指定文本字符串的边上给出线型,记号及颜色。

Page 34: 第三章   MATLAB 图形系统

§3.8 图形函数三 . 坐标系控制1.subplot 建立和控制多个坐标系。 subplot 可将图形窗口分成举行窗格,并 按行编号,每窗格上可建立一个坐标系, 后续的绘图命令会在当前窗格上绘制图形。 subplot(m,n,p) 可将图形窗口分割成 m*n 个 窗格,并将第 p 个窗格置成当前窗格。

Page 35: 第三章   MATLAB 图形系统

§3.8 图形函数 subplot(h) 可使句柄 h 坐标系变成当前坐 标系。 subplot(‘Position’,[left,bottom,width,

height]) 可在指定位置建立指定尺寸的坐标系。

h=subplot(…) 还可以得到新坐标系的句。柄。

Page 36: 第三章   MATLAB 图形系统

§3.8 图形函数2.hold 在图形窗口中保持当前图形。 hold 函数可决定所绘制的图形是添加到

图形上,还是取代已绘制的图形。 hold on 表示保持当前图形。 hold off 表示关闭这种保持特性。 hold 命令可在两种状态 (on,off) 之间切换。 hold 的状态可由 ishold 函数来测定。

Page 37: 第三章   MATLAB 图形系统

§3.8 图形函数3.grid 给图形加上栅格线。 grid on 表示给当前坐标系加上栅格

线。 grid off 表示从当前坐标系中删去栅

格线。 grid 命令可在这两种状态之间切换。

Page 38: 第三章   MATLAB 图形系统

§3.8 图形函数4.axes 建立坐标系图形对象。 axes 是建立坐标系图形对象的低级函数,

可在当前窗口中建立坐标系图形对象,其特性取其缺醒值。

axes(h) 可使已存在的坐标系 h 变成当前坐标系。

h=axes(…) 还可以得到所建坐标系的句柄。

Page 39: 第三章   MATLAB 图形系统

§3.8 图形函数5. axis 坐标轴刻度 axis 函数通常可通过设置坐标系特性来获

得。 axis([xmin xmax ymin ymax]) 可为 x 轴和

y

轴设置一个极限范围。 axis([xmin xmax ymin ymax zmin zmax])

可同时设置 x 、 y 、 z 轴的范围。

Page 40: 第三章   MATLAB 图形系统

§3.8 图形函数 v=axis 可得到当前坐标系的轴范围。 axis auto 可将当前坐标系的轴范围设置为

自动方式。 axis manual 可冻结当前坐标轴的刻度范围, 这时如果设置 hold on ,并绘制另一个图形 则其轴范围不会改变。

Page 41: 第三章   MATLAB 图形系统

§3.8 图形函数6. box 控制坐标系边框。 box on 可在当前坐标系中显示一个边框,

这时缺醒情况。 box off 可去掉边框,这时图中只含坐标轴 box 命令可在这两种状态之间切换。

Page 42: 第三章   MATLAB 图形系统

§3.8 图形函数四 . 其他重要函数1.get 获得图形对象的特性。 get(h) 可获得由 h 制定的图形对象的所有特 性及其当前值。 get(h,’PropertyName’) 只得到指定的特性值。 P=get(H,pn) 中, H 为 m维向量。

Page 43: 第三章   MATLAB 图形系统

§3.8 图形函数a=get(0,’Factory’) 可得到用户可设置特性

的出厂值。a=get(0,’FactoryObjectTypePropertyNam

e’) 可得到指定对象类型的指定特性的出厂值。

Page 44: 第三章   MATLAB 图形系统

§3.8 图形函数a=get(h,’Default’) 可得到指定对象 h 的当前缺醒值。

a=get(h,’DefaultObjectTypePropertyName’) 可得到指定对象类型的指定缺醒值。

a=get(h,’DefaultFigureColor’) 可得到图形颜色缺醒值。

Page 45: 第三章   MATLAB 图形系统

§3.8 图形函数2.set 设置图形对象的特性。set(H,’PropertyName’,…) 可对由 H知识的

对象设置制定的特性。set(H,a) 中, a 结构阵列,这样可对多个

对象设置多种特性。set(H,pn,P) 中, P 为 m*n元的单元阵列,

用于指定多个对象的多个特性。

Page 46: 第三章   MATLAB 图形系统

§3.8 图形函数

3.rotate 沿着指定方向旋转对象。 rotate 可在三维空间上按右手准则旋转图

形对象。 rotate(h,direction,alpha) 可将指定对象 h璇转 alpha角 ,direction 为二元或三元向量,它与原点相连构成旋转轴。

Page 47: 第三章   MATLAB 图形系统

§3.8 图形函数

4.colormap 设置和获取当前图形的颜色板。 颜色板是一个 m*3 的矩阵,其值在 0.0 到 1.0 之间,分别表示红、绿、蓝三种颜色, 颜色板的每一行定义了一种颜色。

Page 48: 第三章   MATLAB 图形系统

§3.8 图形函数 colormap(map) 可将颜色板设置成 map ,

当map 中含有 [0.0,1.0] 之外的时 ,MATLAB

会产生一出错信息。 colormap(‘default’) 可将颜色板设置成缺醒的颜色板。

cmap=colormap 可得到当前使用的颜色。

Page 49: 第三章   MATLAB 图形系统

§3.8 图形函数作业:课后习题 P122: 1-10