第7章MATLAB计算的可视化和GUI设计Word下载.docx

上传人:b****6 文档编号:21693598 上传时间:2023-01-31 格式:DOCX 页数:61 大小:788.38KB
下载 相关 举报
第7章MATLAB计算的可视化和GUI设计Word下载.docx_第1页
第1页 / 共61页
第7章MATLAB计算的可视化和GUI设计Word下载.docx_第2页
第2页 / 共61页
第7章MATLAB计算的可视化和GUI设计Word下载.docx_第3页
第3页 / 共61页
第7章MATLAB计算的可视化和GUI设计Word下载.docx_第4页
第4页 / 共61页
第7章MATLAB计算的可视化和GUI设计Word下载.docx_第5页
第5页 / 共61页
点击查看更多>>
下载资源
资源描述

第7章MATLAB计算的可视化和GUI设计Word下载.docx

《第7章MATLAB计算的可视化和GUI设计Word下载.docx》由会员分享,可在线阅读,更多相关《第7章MATLAB计算的可视化和GUI设计Word下载.docx(61页珍藏版)》请在冰豆网上搜索。

第7章MATLAB计算的可视化和GUI设计Word下载.docx

x是向量,而

Y是矩阵,则x的长度与矩阵Y的行数或列数必须相等,①如果

图7.2(a正弦曲线(b方波曲线

图7.3(ax1曲线(bx2曲线

x的长度与Y的行数相等,则向量x与矩阵Y的每列向量对应画一条曲线;

②如果x的长度与Y的列数相等,向量x与Y的每行向量画一条曲线,③如果Y是方阵,则x和Y的行数和列数都相等,将向量x与矩阵Y的每列向量画一条曲线;

▪如果X是矩阵,而y是向量,则y的长度必须等于X的行数或列数,绘制的方法与前一种相似;

▪如果X和Y都是矩阵,则大小必须相同,矩阵X的每列和Y的每列画一条曲线。

【例7.4】混合式图形的绘制,如图7.4所示。

x1=[123];

y1=[123;

456]

y1=

456

plot(x1,y1%每行一条曲线

y2=[12;

34;

56]

y2=

12

34

56

plot(x1,y2%每一列一条曲线

plot(y1,x1

plot(y2,x1

x2=[111;

222]

111

222

plot(x2,y1%按列与列对应的方式

5.plot(z绘制复向量曲线

【例7.4续】下面的程序画出的曲线和图7.4(e中的相同。

图7.4(a(x1,y1曲线

(b(x1,y2曲线

图7.4(c(y1,x1曲线(d(y2,x1曲线

图7.4(e(x2,y1曲线

z1=x2+i*y1

z1=

1.0000+1.0000i1.0000+

2.0000i1.0000+

3.0000i

2.0000+4.0000i2.0000+5.0000i2.0000+6.0000i

plot(z1%以实部为横坐标,虚部为纵坐标

6.plot(x1,y1,x2,y2,…绘制多条曲线

plot命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB自动以不同的颜色绘制不同曲线。

每一对矩阵(Xi,Yi均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。

【例7.5】绘制三条曲线,如图7.5所示。

x=0:

plot(x,sin(x,x,cos(x,x,sin(3*x%画三条曲线

图7.5三条曲线

7.1.2绘制曲线的一般步骤

表7.1为绘制二维、三维图形一般步骤的归纳。

表7.1绘制二维、三维图形的一般步骤

内容

曲线数据准备:

对于二维曲线,横坐标和纵坐标数据变量;

▪步骤1和3是最基本的绘图步骤,如果利用MATLAB的默认设置通常只需要这两个基本步骤就可以基本绘制出图形,而其他步骤并不完全必需。

▪步骤2一般在图形较多的情况下,需要指定图形窗口、子图时使用。

▪除了步骤1、2、3的其他步骤用户可以根据自己需要改变前后次序。

7.1.3多个图形绘制的方法

1.指定图形窗口

如果需要多个图形窗口同时打开时,可以使用figure语句。

figure(n%产生新图形窗口

如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“FigureNo.n”,而不关闭其它窗口。

2.同一窗口多个子图

如果需要在同一个图形窗口中布置几幅独立的子图,可以在plot命令前加上subplot命令来将一个图形窗口划分为多个区域,每个区域一幅子图。

subplot(m,n,k%使m×

n幅子图中的第k幅成为当前图

将图形窗口划分为m×

n幅子图,k是当前子图的编号,“,”可以省略。

子图的序号编排原则是:

左上方为第1幅,先向右后向下依次排列,子图彼此之间独立。

【例7.6】用subplot命令画四个子图,如图7.6所示。

subplot(2,2,1%分割为2*2个子图,左上方为当前图

plot(x,sin(x

subplot(2,2,2%右上方为当前图

plot(x,cos(x

subplot(2,2,3%左下方为当前图

plot(x,sin(3*x

subplot(224%右下方为当前图,省略逗号

plot(x,cos(3*x

图7.6四个子图

如果在使用绘图命令之后,想清除图形窗口画其它图形,应使用“clf”命令清图形窗。

clf%清除子图

3.同一窗口多次叠绘

为了在一个坐标系中增加新的图形对象,可以用“hold”命令来保留原图形对象。

holdon%使当前坐标系和图形保留

holdoff%使当前坐标系和图形不保留

hold%在以上两个命令中切换

在设置了“holdon”后,如果画多个图形对象,则在生成新的图形时保留当前坐标系中已存在的图形对象,MATLAB会根据新图形的大小,重新改变坐标系的比例。

【例7.7】在同一窗口画出函数sinx在区间[0,2π]的曲线和cosx在区间[-π,π]的曲线,如图7.7(a所示。

plot(x1,sin(x1

holdon

x2=-pi:

.1:

pi;

plot(x2,cos(x2

程序分析:

坐标系的范围由0~2π转变为-π~2π。

4.双纵坐标图

plotyy(x1,y1,x2,y2%以左、右不同纵轴绘制两条曲线说明:

左纵轴用于(x1,y1数据,右纵轴用于(x2,y2数据来绘制两条曲线。

坐标轴的范围、刻度都自动产生。

【例7.7续】用plotyy函数实现在同一图形窗口绘制两条曲线,如图7.7(b所示。

plotyy(x1,sin(x1,x2,cos(x2

plotyy函数用不同颜色绘制两条曲线,左右两边使用两个纵坐标轴,横坐标为-π~2π。

7.1.4曲线的线型、颜色和数据点形

plot命令还可以设置曲线的线段类型、颜色和数据点形等,如表7.2所示。

表7.2线段、颜色与数据点形

颜色数据点间连线数据点形类型符号类型符号类型符号

plot(x,y,s

x为横坐标矩阵,y为纵坐标矩阵,s为类型说明字符串参数;

s字符串可以是线段类型、颜色和数据点形三种类型的符号之一,也可以是三种类型符号的组合。

【例7.8】用不同线段类型、颜色和数据点形画出sinx和cosx曲线,如图7.8所示。

图7.7(a用holdon在同一窗口画出两条曲线(b用plotyy在同一窗口画出两条曲

plot(x,sin(x,'

r-.'

%用红色点划线画出曲线

plot(x,cos(x,'

b:

o'

%用蓝色圆圈画出曲线,用点线连接

7.1.5设置坐标轴和文字标注

1.坐标轴的控制

用坐标控制命令axis来控制坐标轴的特性,表7.3列出其常用控制命令。

表7.3常用的坐标控制命令

含义命令含义

使用默认设置axisequal纵、横轴采用等长刻度使当前坐标范围不变

axisfill在manual满整个绘图区取消轴背景axisimage纵、横轴采用等长刻度,

2.分格线和坐标框

(1使用grid命令显示分格线语法:

gridon%显示分格线gridoff%不显示分格线grid%在以上两个命令间切换

图7.8在同一窗口画出两条曲线

不显示分格线是MATLAB的默认设置。

分格线的疏密取决于坐标刻度,如果要改变分格线的疏密,必须先定义坐标刻度。

(2使用box命令显示坐标框

boxon%使当前坐标框呈封闭形式

boxoff%使当前坐标框呈开启形式

box%在以上两个命令间切换

在默认情况下,所画的坐标框呈封闭形式。

【例7.9】在两个子图中使用坐标轴、分格线和坐标框控制,如图7.9所示。

subplot(2,1,1

plot(sin(x,cos(x

axisequal%纵、横轴采用等长刻度

axisoff

boxoff

gridon%加分格线

subplot(2,1,2

plot(x,exp(-x

axis([0,3,0,2]%改变坐标轴范围

图7.9用坐标轴、分格线和坐标框控制

3.文字标注

(1添加图名

title(s%书写图名

s为图名,为字符串,可以是英文或中文。

(2添加坐标轴名

xlabel(s%横坐标轴名

ylabel(s%纵坐标轴名

(3添加图例

legend(s,pos%在指定位置建立图例

legendoff%擦除当前图中的图例

参数s是图例中的文字注释,如果多个注释则可以用’s1’,’s2’,…的方式;

参数pos是图例在图上位置的指定符,它的取值如表7.4所示。

表7.4pos取值所对应的图例位置

用legend命令在图形窗口中产生图例后,还可以用鼠标对其进行拖拉操作,将图例拖到满意的位置。

(4添加文字注释

text(xt,yt,s%在图形的(xt,yt坐标处书写文字注释

【例7.10】在图形窗口中添加文字注释,如图7.10所示。

ro'

title('

y1=sin(x,y2=cos(x'

%添加标题

xlabel('

x'

%添加横坐标名

legend('

sin(x'

'

cos(x'

4%在右下角添加图例

text(pi,sin(pi,'

x=\pi'

%在pi,sin(pi处添加文字注释

图7.10添加图形标注

4.特殊符号

表7.5图形标识用的希腊字母、数学符号和特殊字符

如果需要对文字进行上下标设置,或设置字体大小,则必须在文字标识前先使用表7.6中所示的设置值。

表7.6文字设置

【例7.11】在MATLAB的图形窗口中写出标题为表达式dty(tey(0

ωtj⎰

-=ω,字体大小

为16号,如图7.11所示。

figure(1

\fontsize{16}y(\omega=\int^{\infty}_{0}y(te^{-j\omegat}dt'

7.1.6交互式图形命令

1.ginput命令

ginput命令是从图上获取数据。

图7.11特殊字符

[x,y]=ginput(n%用鼠标从图形上获取n个点的坐标(x,y

参数n应为正整数,是通过鼠标从图上获得数据点的个数;

x、y用来存放所取点的坐标。

2.gtext命令

gtext命令是把字符串放置到图形中鼠标所指定的位置上。

gtext(‘s’%用鼠标把字符串放置到图形上

如果参数s是单个字符串或单行字符串矩阵,那么一次鼠标操作就可把全部字符以单行形式放置在图上;

如果参数s是多行字符串矩阵,那么每操作一次鼠标,只能放置一行字符串,需要通过多次鼠标操作,把一行一行字符串放在图形的不同位置。

【例7.12】在y=sin(x的图形中将(π,0和(2π,0点的坐标取出,并在(2π,0点写“2π”字符串。

[m,n]=ginput(2%取两点坐标

m=

3.1532

6.2984

n=

-0.0029

-0.0088

gtext('

2\pi'

%写2π

axistight

由于鼠标所取点的位置有些偏差,因此ginput命令获取的坐标并不是精确在(π,0和(2π,0点上;

gtext命令在图中鼠标单击处写了“2π”字符串。

7.2MATLAB的三维图形绘制

7.2.1绘制三维线图命令plot3

plot3是用来绘制三维曲线的,它的使用格式与二维绘图的plot命令很相似。

plot3(x,y,z,'

s'

%绘制三维曲线

plot3(x1,y1,z1,'

s1'

x2,y2,z2,'

s2'

…%绘制多条三维曲线

当x、y、z是同维向量时,则绘制以x、y、z元素为坐标的三维曲线;

当X、Y、Z是同维矩阵时,则绘制三维曲线的条数等于矩阵的列数。

s是指定线型、色彩、数据点形的字符串。

【例7.13】三维曲线绘图,如图7.12所示。

20*pi;

plot3(x,sin(x,cos(x

%按系统默认设置绘图

7.2.2绘制三维网线图和曲面图

1.meshgrid命令

为了绘制三维立体图形,MATLAB的方法是将x方向划分为m份,将y方向划分为n份,meshgrid命令是以x、y向量为基准,来产生在x-y平面的各栅格点坐标值的矩阵。

[X,Y]=meshgrid(x,y

X、Y是栅格点的坐标,为矩阵;

x、y为向量。

例如,将x(1

×

m向量和y(1×

n向量转换为(n×

m的矩阵:

x=[1234];

y=[567];

[xx,yy]=meshgrid(x,y

xx=

123412341234yy=

5555

6666

7777

plot(xx,yyplot(yy,xx

图7.12三维曲线绘图

图7.13(aplot(xx,yy对应的曲线

【例7.14】使用peaks函数来测试meshgrid命令。

为了方便测试立方体,MATLAB提供了peaks函数,可以产生1个凹凸有致的曲面,包含3个局部极大点和3个局部极小点,在图7.14中可以看到。

其x和y坐标分别为在[-33]范围内的49×

49的矩阵,z坐标与x、y的关系为:

z=3*(1-x.^2.*exp(-(x.^2-(y+1.^2...

-10*(x/5-x.^3-y.^5.*exp(-x.^2-y.^2...

-1/3*exp(-(x+1.^2-y.^2

x=linspace(-3,3,49;

y=linspace(-3,3,49;

[xx,yy]=meshgrid(x,y;

%产生49*49的栅格点坐标

xx和yy分别为49×

49的矩阵。

zz=3*(1-xx.^2.*exp(-(xx.^2-(yy+1.^2...

-10*(xx/5-xx.^3-yy.^5.*exp(-xx.^2-yy.^2...

-1/3*exp(-(xx+1.^2-yy.^2;

%产生peaks函数

plot3(xx,yy,zz

zz也是49×

49的矩阵,绘制三维网线图如图7.14所示。

图7.14peaks函数的三维网线图

2.三维网线图

mesh(z%画三维网线图

mesh(x,y,z,c

当只有参数z时,以Z矩阵的行下标作为x坐标轴,把Z的列下标当作y坐标轴;

x、y分别为x、y坐标轴的自变量;

当有x、y、z参数时,C是指定各点的用色矩阵(即C用于定义颜色,当C省略时,则mesh(x,y,z绘制的颜色随z值(即曲面高度成比例变化。

如果x、y、z、c四个参数都有,则应该都是维数相同的矩阵。

【例】

y=[567];

1234

yy=

mesh(xx

mesh(yy

(axx的三维网线图

(byy的三维网线图

【例7.14续】用mesh查看peaks函数的三维网线图,如图7.15所示。

mesh(xx,yy,zz

3.三维曲面图

surf(z%画三维曲面图

surf(x,y,z,c

参数设置与mesh命令相同,c也可以省略。

【例7.14续】用surf查看peaks函数的三维曲面图,如图7.16所示。

surf(xx,yy,zz

图7.15peaks函数的三维网线图

图7.16peaks函数的三维曲面图

4.其它立体网线图和曲面图

立体网线图mesh命令还有几种格式,如meshc命令为立体网状图加等高线;

meshz为立体网状图加“围裙”。

【例7.14续】用meshz和meshc查看peaks函数的三维曲面图,如图7.17所示。

meshz(xx,yy,zz

meshc(xx,yy,zz

立体曲面图surf命令也还有几种格式,如surfc命令为三维曲面图加等高线;

surf1为三维曲面图加上光源,语法格式为surf1(x,y,z,c,S,S为确定光源方向的三维数组(Sx,Sy,Sz。

7.2.3立体图形与图轴的控制

在绘制三维立体图时,MATLAB提供了对图形和图轴的多种精细控制。

图7.17(apeaks

函数的曲面加“围裙”图

(bpeaks函数的曲面图加等高线

1.网格的隐藏

如果要使被遮盖的网格也能呈现出来,可用“hiddenoff”命令。

hiddenoff%显示被遮盖的网格

hiddenon%隐藏被遮盖的网格

【例7.15】显示被遮盖的网格,如图7.18所示。

[x,y,z]=peaks;

%peaks函数mesh(x,y,z

%绘制网线图hiddenoff%显示网格

2.改变视角

三维图形的观测角度不同,则显示也不同,如果要改变观测角度,可用“view”命令。

语法:

view(az,el%通过方位角和俯仰角改变视角

view(vx,vy,vz%通过直角坐标改变视角

az表示方位角,el表示俯仰角;

vx、vy、vz表示直角坐标。

【例7.15续】改变peaks函数的视角,如图

7.19所示。

view(0,0

view(0,90

view(-37.5,30%恢复原视角

图7.18显示网线的peaks函数

图7.19(a视角为(0,0的peaks函数

(b视角为(0,90的peaks函数

view(20,50

view(10,70

视角为(0,0,得到一个(x,z的二维图形效果;

视角为(0,90,得到一个(x,y的二维图形效果。

3.曲面的镂空

【例7.15续】对peaks函数曲面实现镂空效果,如图7.20所示。

z(10:

20,10:

20=nan;

%将一部分数值用nan替换

surf(x,y,z%画曲面图

图7.20peaks函数曲面的镂空效果

7.2.4色彩的控制

1.色图(colormap

(1RGB三元组

RGB三元行数组表示一种色彩,数组元素R、G、B在0~1之间,分别表示红、绿、蓝基色的相对亮度,通过三色的设置可以调制出不同颜色,如表7.7所示。

表7.7常用颜色的RGB成分

【例7.16】查看默认的色图矩阵。

peaks;

%以默认颜色显示peaks函数曲面

colormap

ans=

000.5625

000.6250

000.6875

000.7500

000.8125

000.8750

000.9375

001.0000

00.06251.0000

00.12501.0000

......

0.625000

0.562500

0.500000

size(colormap

643

peaks函数的颜色如前图7.15所示,colormap是64×

3的矩阵。

为了节省篇幅在此省略了中间的一些行数,每行为RGB颜色的相对亮度。

第一行的颜色设定该曲面的最高点,最后一行的颜色设定该曲面的最低点,其余高度的颜色则根据线性内插法来决定。

(2预定义色图函数

表7.8预定义色图的函数表

上表每行的函数默认产生一个64×

3的色图矩阵,可以改变函数的参数产生一个m×

3的色图矩阵。

【例7.16续】查看暖色色图。

colormaphot(8%产生暖色peaks函数曲面

0.333300

0.666700

1.000000

1.00000.33330

1.00000.66670

1.00001.00000

1.00001.00000.5000

1.00001.00001.0000

hot(8函数产生8×

3的矩阵,表示黑、红、黄、白的浓淡色,在此图略,大家自己可以对比该图与前面图形的不同颜色。

2.色图的显示和处理

(1色图的显示

▪rgbplot命令

rgbplot(map

map是表7.8中的各预定义色图,rgbplot命令可画出以行数为自变量红、绿、蓝相对亮度分量的直线图,反映R、G、B三色比重的变化。

▪colorbar命令

colorbar命令以不同颜色来代表曲面的高度,显示一个水平或垂直的颜色标尺。

【例7.17】用rgbplot和colorbar命令显示色图,如图7.21所示。

rgbplot(cool%画出冷色的颜色分量直线图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1