MATLAB计算的可视化和GUI设计.ppt

上传人:牧羊曲112 文档编号:5439313 上传时间:2023-07-07 格式:PPT 页数:100 大小:1.87MB
返回 下载 相关 举报
MATLAB计算的可视化和GUI设计.ppt_第1页
第1页 / 共100页
MATLAB计算的可视化和GUI设计.ppt_第2页
第2页 / 共100页
MATLAB计算的可视化和GUI设计.ppt_第3页
第3页 / 共100页
MATLAB计算的可视化和GUI设计.ppt_第4页
第4页 / 共100页
MATLAB计算的可视化和GUI设计.ppt_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《MATLAB计算的可视化和GUI设计.ppt》由会员分享,可在线阅读,更多相关《MATLAB计算的可视化和GUI设计.ppt(100页珍藏版)》请在三一办公上搜索。

1、第4章 MATLAB计算的可视化和GUI设计,4.1二维曲线的绘制,基本绘图命令plot命令是MATLAB中最简单而且使用最广泛的一个绘图命令,用来绘制二维曲线。语法:plot(x)%绘制以x为纵坐标的二维曲线plot(x,y)%绘制以x为横坐标y为纵坐标的二维曲线说明:x和y可以是向量或矩阵。1.plot(x)绘制x向量曲线当x是长度为n的数值向量,则坐标系的纵坐标为向量x,横坐标为MATLAB系统根据x向量的元素序号自动生成的从1开始的向量。plot(x)命令是在坐标系中顺序地用直线段连接各点,生成一条折线,当向量的元素充分多时,可以得到一条光滑的曲线。,基本绘图命令,【例4.1】用plo

2、t(x)命令画直线,如图4.1所示。x1=1 2 3x1=1 2 3 plot(x1)x2=0 1 0 x2=0 1 0 plot(x2),图4.1(a)x1曲线(b)x2曲线,基本绘图命令,2.plot(x,y)绘制向量x和y的曲线当参数x和y都是长度为n的向量,x、y的长度必须相等,plot(x,y)命令绘制纵坐标为向量y横坐标为向量x的曲线。【例4.2】绘制正弦曲线y=sin(x)和方波曲线,如图4.2所示。x1=0:0.1:2*pi;y1=sin(x1);%y1为x1的正弦函数 plot(x1,y1)x2=0 1 1 2 2 3;y2=1 1 0 0 1 1;plot(x2,y2)ax

3、is(0 4 0 2)%将坐标轴范围设定为0-4和0-2,图4.2(a)正弦曲线(b)方波曲线,基本绘图命令,3.plot(x)绘制矩阵x的曲线当x是一个mn的矩阵,plot(x)命令为矩阵的每一列画出一条线,共n条曲线,各曲线自动用不同颜色显示;每条线的横坐标为向量1:m,m是矩阵的行数,绘制方法与向量相同。【例4.3】矩阵图形的绘制,如图4.3所示。,图4.3(a)x1曲线(b)x2曲线,x1=1 2 3;4 5 6;plot(x1)x2=peaks;%产生一个49*49的矩阵 plot(x2),基本绘图命令,4.plot(x,y)绘制混合式曲线当plot(x,y)命令中的参数x和y是向量

4、或矩阵时,分别有以下几种情况:如果x是向量,而y是矩阵,则x的长度与矩阵y的行数或列数必须相等,如果x的长度与y的行数相等,则向量x与矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等,向量x与y的每行向量画一条曲线,如果y是方阵,则x和y的行数和列数都相等,将向量x与矩阵y的每列向量画一条曲线;如果x是矩阵,而y是向量,则y的长度必须等于x的行数或列数,绘制的方法与前一种相似;如果x和y都是矩阵,则大小必须相同,矩阵x的每列和y的每列画一条曲线。,基本绘图命令,【例4.4】混合式图形的绘制,如图4.4所示。x1=1 2 3;y1=1 2 3;4 5 6y1=1 2 3 4 5 6 p

5、lot(x1,y1)%每行一条曲线 y2=1 2;3 4;5 6y2=1 23 4 5 6 plot(x1,y2)%每列一条曲线 plot(y1,x1)plot(y2,x1)x2=1 1 1;2 2 2x2=1 1 1 2 2 2 plot(x2,y1)%按列与列对应的方式,基本绘图命令,基本绘图命令,5.plot(z)绘制复向量曲线plot(z)中的参数z为复向量时,plot(z)和plot(real(z),imag(z)是等效的,以实部为横坐标,虚部为纵坐标。【例4.4续】下面的程序画出的曲线和图4.4(e)中的相同。z1=x2+i*y1z1=1.0000+1.0000i 1.0000+2

6、.0000i 1.0000+3.0000i 2.0000+4.0000i 2.0000+5.0000i 2.0000+6.0000i plot(z1)%以实部为横坐标,虚部为纵坐标,图4.4(e)(x2,y1)曲线,基本绘图命令,6.plot(x1,y1,x2,y2,)绘制多条曲线plot命令还可以同时绘制多条曲线,用多个矩阵对为参数,MATLAB自动以不同的颜色绘制不同曲线。每一对矩阵(xi,yi)均按照前面的方式解释,不同的矩阵对之间,其维数可以不同。【例4.5】绘制三条曲线,如图4.5所示。x=0:0.1:2*pi;plot(x,sin(x),x,cos(x),x,sin(3*x)%画三

7、条曲线,图4.5 三条曲线,绘制曲线的一般步骤,在MATLAB中,无论是绘制二维还是三维图形,如果要画出相当满意的彩色图形,还要对图形进行各种修饰,表4.1为绘制二维、三维图形一般步骤的归纳。,表4.1绘制二维、三维图形的一般步骤,多个图形绘制的方法,1.指定图形窗口在小节中介绍的plot命令,绘制的图形都是在默认的“Figure No.1”窗口中绘制的,当第二次使用plot命令时,就将第一次绘制的图形覆盖了。因此,如果需要多个图形窗口同时打开时,可以使用figure语句。语法:figure(n)%产生新图形窗口说明:如果该窗口不存在,则产生新图形窗口并设置为当前图形窗口,该窗口名为“Figu

8、re No.n”,而不关闭其它窗口。例如,可以使用“figure(1)”、“figure(2)”等语句来同时打开多个图形窗口。2.同一窗口多个子图如果需要在同一个图形窗口中布置几幅独立的子图,可以在plot命令前加上subplot命令来将一个图形窗口划分为多个区域,每个区域一幅子图。语法:subplot(m,n,k)%使(mn)幅子图中的第k幅成为当前图,多个图形绘制的方法,【例4.6】用subplot命令画四个子图,如图4.6所示。x=0:0.1:2*pi;subplot(2,2,1)%分割为2*2个子图,左上方为当前图 plot(x,sin(x)subplot(2,2,2)%右上方为当前图

9、 plot(x,cos(x)subplot(2,2,3)%左下方为当前图 plot(x,sin(3*x)subplot(224)%右下方为当前图,省略逗号 plot(x,cos(3*x),图4.6 四个子图,多个图形绘制的方法,3.同一窗口多次叠绘在当前坐标系中绘图时,每调用一次plot函数,会擦掉图形窗口中已有的图形。为了在一个坐标系中增加新的图形对象,可以用“hold”命令来保留原图形对象。语法:hold on%使当前坐标系和图形保留hold off%使当前坐标系和图形不保留hold%在以上两个命令中切换说明:在设置了“hold on”后,如果画多个图形对象,则在生成新的图形时保留当前坐标

10、系中已存在的图形对象,MATLAB会根据新图形的大小,重新改变坐标系的比例。,多个图形绘制的方法,【例4.7】在同一窗口画出函数sinx在区间0 2的曲线和cosx在区间-的曲线,如图4.7(a)所示。x1=0:0.1:2*pi;plot(x1,sin(x1)hold on x2=-pi:.1:pi;plot(x2,cos(x2),图4.7(a)用hold on在同一窗口画出两条曲线,多个图形绘制的方法,4.双纵坐标图语法:plotyy(x1,y1,x2,y2)%以左、右不同纵轴绘制两条曲线说明:左纵轴用于(x1,y1)数据,右纵轴用于(x2,y2)数据来绘制两条曲线。坐标轴的范围、刻度都自动

11、产生。【例4.7续】用plotyy函数实现在同一图形窗口绘制两条曲线,如图4.7(b)所示。plotyy(x1,sin(x1),x2,cos(x2),(b)用plotyy在同一窗口画出两条曲线,曲线的线型、颜色和数据点形,前面介绍的plot命令的多种调用方式时,MATLAB自动以默认方式设置各曲线的线型、线段的颜色和数据点形等,实际上,plot命令还可以设置曲线的线段类型、颜色和数据点形等,如表4.2所示。,表4.2 线段、颜色与数据点形,曲线的线型、颜色和数据点形,【例4.8】用不同线段类型、颜色和数据点形画出sin(x)和cos(x)曲线,如图4.8所示。,图4.8在同一窗口画出两条曲线,

12、x=0:0.1:2*pi;plot(x,sin(x),r-.)%用红色点划线画出曲线 hold on plot(x,cos(x),b:o)%用蓝色圆圈画出曲线,用点线连接,设置坐标轴和文字标注,1.坐标轴的控制plot命令根据所给的坐标点自动地确定坐标轴的范围,用坐标控制命令axis来控制坐标轴的特性,表4.3列出其常用控制命令。,表4.3常用的坐标控制命令,设置坐标轴和文字标注,2.分格线和坐标框(1)使用grid命令显示分格线语法:grid on%显示分格线grid off%不显示分格线grid%在以上两个命令间切换说明:不显示分格线是MATLAB的默认设置。分格线的疏密取决于坐标刻度,如

13、果要改变分格线的疏密,必须先定义坐标刻度。(2)使用box命令显示坐标框语法:box on%使当前坐标框呈封闭形式box off%使当前坐标框呈开启形式box%在以上两个命令间切换,设置坐标轴和文字标注,【例4.9】在两个子图中使用坐标轴、分格线和坐标框控制,如图4.9所示。x=0:0.1:2*pi;subplot(2,1,1)plot(sin(x),cos(x)axis equal%纵、横轴采用等长刻度 grid on%加分格线 subplot(2,1,2)plot(x,exp(-x)axis(0,3,0,2)%改变坐标轴范围,图4.9 用坐标轴、分格线和坐标框控制,设置坐标轴和文字标注,3

14、.文字标注图形的文字标注是指在图形中添加标识性的注释,文字标注包括:图名(Title)、坐标轴名(Label)、文字注释(Text)和图例(Legend)。(1)添加图名语法:title(s)%书写图名说明:s为图名,为字符串,可以是英文或中文。(2)添加坐标轴名语法:xlabel(s)%横坐标轴名ylabel(s)%纵坐标轴名(3)添加图例语法:legend(s,pos)%在指定位置建立图例legend off%擦除当前图中的图例,设置坐标轴和文字标注,说明:参数s是图例中的文字注释,如果多个注释则可以用s1,s2,的方式;参数pos是图例在图上位置的指定符,它的取值如表4.4所示。,表4.

15、4pos取值所对应的图例位置,(4)添加文字注释语法:text(xt,yt,s)%在图形的(xt,yt)坐标处书写文字注释,设置坐标轴和文字标注,【例4.10】在图形窗口中添加文字注释,如图4.10所示。x=0:0.1:2*pi;plot(x,sin(x)hold on plot(x,cos(x),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)处添加文字注释,图4.10 添加图形标注,设置坐标轴和文字标注,4

16、.特殊符号如果需要对图形中的文字标识使用特殊字符如希腊字母、数学符等,则可以使用如表4.5所示的对应字符,如上例中的“text(pi,sin(pi),x=pi)”显示了希腊字符“”。,表4.5图形标识用的希腊字母、数学符号和特殊字符,设置坐标轴和文字标注,如果需要对文字进行上下标设置,或设置字体大小,则必须在文字标识前先使用表4.6中所示的设置值。,表4.6文字设置,【例4.11】在MATLAB的图形窗口中写出标题为表达式,字体大小为16号,如图4.11所示。figure(1)title(fontsize16y(omega)=intinfty_0y(t)e-jomegatdt),图4.11 特

17、殊字符,交互式图形命令,1.ginput命令ginput命令与其他图形命令的原理不同,不是把数据表现在图上,而是从图上获取数据。因此,ginput命令在数值优化、工程设计中十分有用,仅适用于二维图形。语法:x,y=ginput(n)%用鼠标从图形上获取n个点的坐标(x,y)2.gtext命令gtext命令是把字符串放置到图形中鼠标所指定的位置上,该命令对二维、三维图形都适用。语法:gtext(s)%用鼠标把字符串放置到图形上,交互式图形命令,【例4.12】在y=sin(x)的图形中将(,0)和(2,0)点的坐标取出,并在(2,0)点写“2”字符串。x=0:0.1:2*pi;plot(x,sin

18、(x)m,n=ginput(2)%取两点坐标m=3.1532 6.2984n=-0.0029-0.0088 gtext(2pi)%写2,4.2 MATLAB的三维图形绘制,绘制三维线图命令在MATLAB的三维图形命令中plot3最易于理解,plot3是用来绘制三维曲线的,它的使用格式与二维绘图的plot命令很相似。语法:plot3(x,y,z,s)%绘制三维曲线plot3(x1,y1,z1,s1,x2,y2,z2,s2,)%绘制多条三维曲线【例4.13】三维曲线绘图,如图4.12所示。x=0:0.1:20*pi;plot3(x,sin(x),cos(x)%按系统默认设置绘图,图4.12 三维曲

19、线,绘制三维网线图和曲面图,meshgrid命令meshgrid命令是以x、y向量为基准,来产生在x-y平面的各栅格点坐标值的矩阵。语法:X,Ymeshgrid(x,y)说明:X、Y是栅格点的坐标,为矩阵;x、y为向量。例如,将x(1m)向量和y(1n)向量转换为(nm)的矩阵:x=1 2 3 4;y=5 6 7;xx,yy=meshgrid(x,y)xx=1 2 3 4 1 2 3 4 1 2 3 4yy=5 5 5 5 6 6 6 6 7 7 7 7,绘制三维网线图和曲面图,【例4.14】使用peaks函数来测试meshgrid命令,并使用mesh命令来查看meshgrid的输出。为了方便

20、测试立体图,MATLAB提供了peaks函数,可以产生一个凹凸有致的曲面,包含三个局部极大点和三个局部极小点,在下面的图4.13中可以看到。其x和y坐标分别为在-3 3范围内的4949的矩阵,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的栅格点坐标 mesh(xx)%查看xx的网线图 mesh(yy),绘制三

21、维网线图和曲面图,xx和yy分别为4949的矩阵,如图4.13为xx和yy的网状图。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),图4.13(a)xx的网格图(b)yy的网格图,绘制三维网线图和曲面图,程序分析:zz也是4949的矩阵,绘制三维曲线图如图4.14所示。,图4.14 peaks函数的三维线图,绘制三维网线图和曲面图,2.三维网线图语法:mesh(z)%画三维网线图mesh(x,

22、y,z,c)【例4.14续】用mesh查看peaks函数的三维网线图,如图4.15所示。mesh(xx,yy,zz),图4.15 peaks函数的三维网线图,绘制三维网线图和曲面图,3.三维曲面图 语法:surf(z)%画三维曲面图surf(x,y,z,c)【例4.14续】用surf查看peaks函数的三维曲面图,如图4.16所 surf(xx,yy,zz),图4.16 peaks函数的三维曲面图,绘制三维网线图和曲面图,4.其它立体网线图和曲面图立体网线图mesh命令还有几种格式,meshc命令为立体网状图加等高线;meshz为立体网状图加“围裙”。【例4.14续】用meshz和meshc查

23、看peaks函数的三维曲面图,如图4.17所示。meshz(xx,yy,zz)meshc(xx,yy,zz),图4.17(a)peaks函数的曲面加“围裙”图(b)peaks函数的曲面图加等高线,立体图形与图轴的控制,1网格的隐藏在默认方式下,MATLAB在绘制图形时前面的图形会遮盖后面的图形,即后面的网格会隐藏,如果要使被遮盖的网格也能呈现出来,可用“hidden off”命令。语法:hidden off%显示被遮盖的网格hidden on%隐藏被遮盖的网格【例4.15】显示被遮盖的网格,如图4.18所示。x,y,z=peaks;%peaks函数 mesh(x,y,z)%绘制曲面图 hidd

24、en off%显示网格,图4.18 显示网线的peaks函数,立体图形与图轴的控制,2改变视角立体图形的观测角度是由方位角和俯仰角决定的,与x平面所成的夹角称为方位角(Azimuth),与z平面所成的夹角称为俯仰角(Elevation)。对二维图形默认方位角=0,俯仰角=90;对三维图形默认方位角=-37.5,俯仰角=30。三维图形的观测角度不同则显示也不同,如果要改变观测角度,可用“view”命令。语法:view(az,el)%通过方位角和俯仰角改变视角view(vx,vy,vz)%通过直角坐标改变视角,立体图形与图轴的控制,【例4.15续】改变peaks函数的视角,如图4.19所示。vie

25、w(0,0)view(0,90)view(-37.5,30)%恢复原视角,图4.19(a)视角为(0,0)的peaks函数(b)视角为(0,90)的peaks函数,立体图形与图轴的控制,3曲面的镂空MATLAB默认绘制的曲面不透明,当有时希望看到曲面图下面的部分,可以将曲面镂空。在MATLAB中可以在希望镂空的位置用NaN(nan)来取代矩阵在该部分的数值,所有的MATLAB作图函数都会忽略NaN 数据点,实现“镂空”效果。【例4.15续】对peaks函数曲面实现镂空效果,如图4.20所示。镂空部分 z(10:20,10:20)=nan;%将一部分数值用nan替换 surf(x,y,z)%画曲

26、面图,色彩的控制,1色图(colormap)(1)RGB三元组RGB三元行数组表示一种色彩,数组元素R、G、B在01之间,分别表示红、绿、蓝基色的相对亮度,通过三色的设置可以调制出不同颜色,如表4.7所示。,表4.7常用颜色的RGB成分,色彩的控制,【例4.16】查看默认的色图矩阵。peaks;%以默认颜色显示peaks函数曲面 colormapans=0 0 0.5625 0 0 0.6250 0 0 0.6875 0 0 0.7500 0 0 0.8125 0 0 0.8750 0 0 0.9375 0 0 1.0000 0 0.0625 1.0000 0 0.1250 1.0000.0.

27、6875 0 0 0.6250 0 0 0.5625 0 0 size(colormap)ans=64 3,色彩的控制,(2)预定义色图函数MATLAB系统提供了现成的可以预定义色图的函数,如表4.8所示为预定义色图的函数表。,表4.8预定义色图的函数表,色彩的控制,【例4.16续】查看暖色色图。colormap hot(8)%产生暖色peaks函数曲面 colormap ans=0.3333 0 0 0.6667 0 0 1.0000 0 0 1.0000 0.3333 0 1.0000 0.6667 0 1.0000 1.0000 0 1.0000 1.0000 0.5000 1.0000

28、 1.0000 1.0000,色彩的控制,2色图的显示和处理(1)色图的显示可以利用rgbplot和colorbar命令显示色图。rgbplot命令语法:rgbplot(map)colorbar命令colorbar命令以不同颜色来代表曲面的高度,显示一个水平或垂直的颜色标尺。,色彩的控制,【例4.17】用rgbplot和colorbar命令显示色图,如图4.21所示。subplot(2,1,1)rgbplot(cool)%画出冷色的颜色分量直线图 subplot(2,1,2)peaks;colormap cool%产生冷色peaks函数曲面 colorbar%显示颜色标尺,图4.21用rgbp

29、lot和colorbar命令显示色图,色彩的控制,(2)浓淡处理shading在前面的例子中,每一个曲面都可以看作是由一块块的四方小片拼成,而且每一小片表面的颜色是均匀一致的,其颜色值由小片所在的曲面高度决定。如果要使小片表面的颜色产生连续性的变化可使用shading命令,shading命令的用法如表4.9所示。,表4.9shading命令的用法,色彩的控制,【例4.18】使用浓淡处理peaks函数曲面图,如图4.22所示。subplot(1,2,1)peaks;shading interp subplot(1,2,2)peaks;shading faceted,图4.22用interp和fa

30、ceted方式进行浓淡处理,色彩的控制,(3)亮度处理brighten可以用brighten命令来使色图变亮或变暗。语法:brighten(a)【例4.18续】对peaks函数曲面加亮,并查看色图矩阵。peaks;brighten(0.5)colormapans=0 0 0.7500 0 0 0.7906 0 0 0.8292 0 0 0.8660 0 0 0.9014 0 0 0.9354 0 0 0.9682 0 0 1.0000 0 0.2500 1.0000 0 0.3536 1.0000 0.8292 0 0 0.7906 0 0 0.7500 0 0,4.3 MATLAB的特殊图形

31、绘制,条形图条形图常用于对统计的数据进行作图,特别适用于少量且离散的数据。绘制条形图的函数如表4.10所示。,表4.10 条形图函数,语法:bar(x,y,width,参数)%画条形图bar3(y,z,width,参数)%画三维条形图,条形图,【例4.19】用条形图表示某年一月份中3日6日连续四天的温度数据,y矩阵的各列分别表示平均温度、最高温度和最低温度,如图4.23所示,用条形图和三维条形图分别表示。x=3:6;y=5.3000 13.0000 0.40005.1000 11.8000-1.70003.7000 8.1000 0.60001.5000 7.7000-4.5000 bar(x

32、,y)%画条形图 bar3(x,y)%画三维条形图,图4.23(a)条形图(b)三维条形图,面积图和实心图,1.面积图面积图是在曲线与横轴之间填充颜色,用于绘制面积图的命令为“area”,只能用于二维绘图。语法:area(y)%画面积图area(x,y)2.实心图实心图是将数据的起点和终点连成多边形,并填充颜色,绘制实心图的命令为“fill”。语法:fill(x,y,c)%画实心图说明:c为实心图的颜色,可以用r、g、b、c、m、y、w、k,或RGB三元组行向量表示,也可以省略。,面积图和实心图,【例4.19续】绘制面积图和实心图,并比较其区别,如图4.24所示。area(x,y)%面积图 f

33、ill(x,y,r)%红色的实心图,图4.24(a)面积图(b)实心图,直方图,用于建立直方图的命令为“hist”,直方图和条形图的形状相似,但直方图用于显示数据的分布规律,并具有统计的功能。语法:hist(y,m)%统计每段的元素个数并画出直方图hist(y,x)【例4.20】用直方图表示正态分布的随机数分布,如图4.25所示。y=randn(10,2)%产生10*2的正态分布的随机数矩阵y=-1.1878-1.1859-2.2023-1.0559 0.9863 1.4725-0.5186 0.0557 0.3274-1.2173 0.2341-0.0412 0.0215-1.1283-1.

34、0039-1.3493-0.9471-0.2611-0.3744 0.9535 x=-2:0.5:2;hist(y,x),直方图,图4.25 直方图,饼图,饼图是用于显示向量中的各元素占向量元素总和的百分比,可以用pie和pie3命令分别绘制二维和三维饼图。语法:pie(x,explode,label)%画二维饼图pie3(x,explode,label)%画三维饼图【例4.21】绘制四个季度支出额的饼图,如图4.26所示。y=200 100 250 400;%四个季度支出额 explode=0 0 1 0;pie(y,explode,第一季度,第二季度,第三季度,第四季度),图4.26 饼图

35、,离散数据图,【例4.22】使用几种绘制离散数据的命令来显示 的离散数据,如图4.27所示。x=0:0.1:2*pi;y=sin(x).*exp(-2*x);subplot(3,1,1)stem(x,y,filled)%画火柴杆图 subplot(3,1,2)stairs(x,y)%画阶梯图 subplot(3,1,3)scatter(x,y)%画点图,图4.27 离散数据图,对数坐标和极坐标图,1.对数坐标图形对数坐标图形有semilogx、semilogy和loglog命令。语法:semilogx(x,y,参数)%绘制x为对数坐标的曲线semilogy(x,y,参数)%绘制y为对数坐标的曲

36、线loglog(x,y,参数)%绘制x、y都为对数坐标的曲线【例4.23】求传递函数为 的对数幅频特性曲线,如图4.28所示,横坐标为w按对数坐标。w=logspace(-2,3,20);%频率w为0.01到1000 Aw=1./(w.*sqrt(0.5*w).2+1);%计算幅频 Lw=20*log10(Aw);%计算对数幅频 semilogx(w,Lw)title(对数幅频特性曲线),对数坐标和极坐标图,图4.28 对数频率特性,对数坐标和极坐标图,2.极坐标图极坐标图由polar命令来实现。语法:polar(theta,radius,参数)%绘制极坐标图【例4.23续】用极坐标图表示上述

37、传递函数的Nyquist曲线,如图4.29所示。w=logspace(-2,3,20);Fw=-90-atan(0.5*w);polar(Fw,Aw),图4.29 极坐标图,等高线图,语法:contour(Z,n)%绘制Z矩阵的等高线contour(x,y,z,n)%绘制以x和y指定x、y坐标的等高线【例4.24】绘制peaks函数的等高线,如图4.30所示。x,y,z=peaks;contour(x,y,z)%画二维等高线 contour3(z,30)%画30条三维等高线,图4.30(a)二维等高线(b)三维等高线,复向量图,pass命令compass绘制的是以原点为起点的一组复向量,因此又

38、称为罗盘图。语法:compass(u,v)%画罗盘图compass(Z)2.feather命令feather绘制的是起点为(k,0)的复向量图,又称为羽毛图。语法:feather(u,v)%画羽毛图feather(Z),复向量图,【例4.25】用罗盘图和羽毛图绘制复向量,如图4.31所示。theta=0:0.2:2*pi;z=sin(theta).*exp(j*theta);compass(z)feather(z),图4.31(a)罗盘图(b)羽毛图,4.4图形窗口的功能,1工具栏从MATLAB的图形窗口带有工具栏,工具栏如图4.32所示。,4.4图形窗口的功能,2菜单图形窗口中的Edit和I

39、nsert菜单可以方便地编辑图形,Edit和Insert菜单如图4.33所示。Edit菜单:选择“Figure Properties”、“Axes Properties”和“Current Object Properties”菜单项,可以打开相应的窗口来修改图形属性、坐标轴属性和对象属性。Insert菜单:可以插入各种文字标注、箭头、线、坐标轴等。,图4.33(a)Edit菜单(b)Insert菜单,4.4图形窗口的功能,使用View菜单可以在图形窗口中添加工具栏和其他窗口,如图4.34所示的在View菜单打开“Figue Palette”、“Plot Browser”和“Property E

40、ditor”窗口。,图4.34 图形窗口,4.5对话框,1.输入信息对话框输入对话框为用户的输入信息提供了界面,使用inputdlg命令创建。输入对话框中有两个按钮,分别为“Ok”和“Cancel”。语法:answerinputdlg(prompt,title,lineno,defans,addopts)%创建输入对话框【例4.26】利用输入对话框输入二阶系统的系数,如图4.35所示。prompt=请输入阻尼系数,请输入无阻尼振荡频率;defans=0.707,1;p=inputdlg(prompt,输入参数,1,defans),4.5对话框,2.输出信息对话框MATLAB提供了几种专用的对话

41、框,用于显示不同的输出信息。(1)消息框msgbox消息框是用来显示输出信息,有一个“Ok”按钮。语法:msgbox(message,title,icon,icondata,iconcmap,CreateMode)%创建消息框【例4.26续】使用消息框显示当阻尼系数大于1时的警告信息,如图4.36所示。msgbox(阻尼系数输入范围出错,警告,warn),图4.36 消息框,4.5对话框,(2)警告对话框warndlg警告对话框是用来显示警告信息,有一个“Ok”按钮,创建的警告对话框与msgbox用“warn”参数时相同。语法:warndlg(WarnString,DlgName,Create

42、Mode)%创建警告对话框说明:WarnString为显示的警告信息,是字符串;DlgName为警告提示框的名称,可省略;CreateMode为对话框的产生模式与msgbox的设置相同,可省略。【例4.26续】使用警告对话框显示当阻尼系数大于1时的警告信息。warndlg(阻尼系数输入范围出错,警告)程序分析:产生的对话框与图4.36一样。(3)错误提示对话框errordlg错误提示对话框是用来显示出错信息,有一个“Ok”按钮。语法:errordlg(ErrorString,DlgName,CreateMode)%创建错误提示框,4.5对话框,【例4.26续】使用出错提示框显示当阻尼系数小于0

43、时出错信息,如图4.37所示。errordlg(阻尼系数输入出错,出错),图4.37 出错提示框,4.5对话框,(4)帮助对话框helpdlg 帮助对话框是用来显示帮助信息,有一个“Ok”按钮。语法:helpdlg(HelpString,DlgName)%创建帮助对话框【例4.26续】使用帮助提示框显示阻尼系数的范围,如图4.38所示。helpdlg(欠阻尼系数应大于0小于1,帮助),图4.38 帮助提示框,4.5对话框,(5)提问对话框questdlg提问对话框是用来进行提问,用户通过按钮回答,可以有一个或多个按钮。语法:Button=questdlg(Question,Title,Btn1

44、,Btn2,Btn3,DEFAULT)%创建提问对话框【例4.26续】使用提问提示框使用户确认,如图4.39所示。button=questdlg(是否确认?,Are you sure?,Yes,No,Yes)button=No,图4.39 提问提示框,4.5对话框,3.文件管理对话框在对文件操作时,经常要对文件进行打开、保存等操作,在各种应用软件中都可以通过“File”菜单中的“Open”和“Save”命令打开相应的对话框,进行文件管理,MATLAB也提供了标准的对话框进行文件的操作。(1)打开文件对话框uigetfileuigetfile命令提供了打开文件对话框,可以选择文件类型和路径。语法

45、:FileName,PathName=uigetfile(FiltrEspec,Title,x,y),4.5对话框,【例4.27】利用打开文件对话框选择MATLAB目录下的文件license.txt,如图4.40所示。fname,pname=uigetfile(*.*,打开文件,100,100)fname=license.txtpname=D:MATLAB6p1,图4.40 打开文件对话框,4.5对话框,(2)保存文件对话框uiputfileuiputfile命令提供了保存文件对话框,用来选择文件类型和路径。语法:FileName,PathName=uiputfile(FiltrEspec,T

46、itle,x,y)【例4.27续】利用保存文件对话框来选择文件。fname1,pname1=uiputfile(Ex0431.mat,保存文件),4.6句柄图形,句柄图形体系句柄图形是一种面向对象的绘图系统,又称为低层图形,低层命令能直接操作基本绘图要素,例如线、文字、面和图形控件等基本绘图要素,能够更细致更个性地表现图形,但低层命令使用起来较难,不象高层命令那样简明易懂。句柄图形体系由若干个图形对象组成,如图4.41所示。,图形对象的操作,1图形对象的创建在创建图形对象时,为了提高可读性,在给对象句柄取名时应统一使用“h_对象名”,例如创建坐标轴对象取名为“h_axes”。,表4.11 创建

47、图形对象的命令,图形对象的操作,2对象句柄的获取(1)当前对象句柄的获取MATLAB提供了三个获取当前对象句柄的命令,分别是gcf、gca、gco。语法:gcf%获取当前图形窗口句柄gca%获取当前坐标轴句柄gco%获取被鼠标最近点击对象的句柄,图形对象的操作,【例4.28】使用命令获取图形对象的句柄,如图4.42所示。x=0:0.1:2*pi;y=sin(x).*exp(-x);plot(x,y)text(pi,0,leftarrowexp(-x)*sin(x)=0)h_fig=gcf%获取图形窗口的句柄h_fig=1 h_axes=gca%获取坐标轴的句柄h_axes=100.0013 h

48、_obj=gco%获取最近点击对象的句柄h_obj=3.0017,图4.42 图形对象,图形对象的操作,(2)查找对象用命令 findobj可以快速查找所有对象,以及获取指定属性值的对象句柄。语法:h=findobj%返回根对象和所有子对象的句柄h=findobj(h_obj)%返回指定对象的句柄h=findobj(PropertyName,PropertyValue)%返回符合指定属性值的对象句柄h=findobj(h_obj,PropertyName,PropertyValue)%在指定对象及子对象中查找符合指定属性值的对象句柄【例4.28续】使用findobj命令获取图4.42中图形对象

49、的句柄。findobj%返回根对象和所有子对象的句柄ans=0 1.0000 100.0013 101.0038 3.0017 h_text=findobj(h_fig,string,leftarrowexp(-x)*sin(x)=0)%查找符合属性值的文字对象句柄h_text=101.0038,图形对象的操作,(3)追溯父对象和子对象的句柄如果一个对象的句柄已知,则可以追溯到其父对象和子对象的句柄。语法:h_parent=get(h_obj,parent)%追溯父对象的句柄h_children=get(h_obj,children)%追溯子对象的句柄【例4.28续】追溯坐标轴对象的父对象和子

50、对象。h_ children=get(h_axes,children)%子对象为文字对象和曲线对象h_ children=101.0038 3.0017 h_parent=get(h_axes,parent)%父对象为图形窗口对象h_parent=1,图形对象的操作,3对象句柄的删除在获取了图形对象的句柄后,就可以对图形对象进行操作。删除图形对象使用命令delete(h_obj),该命令将删除句柄所指对象和所有子对象,而且不提示确认,使用时要小心。【例4.28续】删除坐标轴。delete(h_axes),图形对象属性的获取和设置,1创建对象时设置属性对象的属性可以在创建时设置,在创建时句柄图形

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号