MATLAB-ch03(计算结果可视化).ppt
《MATLAB-ch03(计算结果可视化).ppt》由会员分享,可在线阅读,更多相关《MATLAB-ch03(计算结果可视化).ppt(174页珍藏版)》请在三一办公上搜索。
1、第3讲 计算结果可视化,张建瓴,3.1 MATLAB的图形窗口,MATLAB有一个用于图形输出的专用窗口,称为图形窗口(Figure Window)。通过该图形窗口,可以自由查看和设置有关图形输出及表达的参数,并获得高质量的图形文件。,一、创建与控制图形输出窗口,在执行一个绘图命令(如plot命令)前,MATLAB并没有打开图形窗口,只有在执行创建图形窗口命令后,系统才会自动创建一个图形窗口。若在命令执行前,已经存在了若干窗口,绘图命令会将图像输出到当前窗口,并将原来存在的该窗口的图像覆盖掉。,一、创建与控制图形输出窗口,创建图形窗口的命令为figure,有两种调用格式:,(1)figure(
2、2)figure(n),1、figure命令,直接在命令窗口中键入“figure”,将产生如图3-l所示的图形窗口,该窗口由菜单栏、工具栏和图形区三部分组成。,figure命令格式生成的图形窗口名称是按照窗口创建的先后顺序依次命名的,如figure No.1,figure No.2,figure No.n.。,2、figure(n)命令,figure(n)命令将创建一个名为figure No.n的新空白图形窗口,假如窗口figure No.n已经存在,则将该窗口设置为当前窗口。,二、图形窗口的操作,3.2 二维(平面)图形,一、基本绘图命令,1、线性坐标曲线plot,函数命令plot是MATL
3、AB二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可以生成线段、曲线和参数方程曲线的函数图形,对于不同的输入参数,该函数有不同的形式以实现不同的功能。同时,有许多其他特殊的绘图命令都以它为基础的。,(1)plot(y),【功能】:绘制以y为纵坐标的二维曲线,其中参数y可以是向量或矩阵。,【格式】:以参数y的值为纵坐标,横坐标从1开始自动赋值为向量1 2 3 4 或其转置向量,向量的方向和长度与参数y相同。,例3-1example3-1.m,用命令plot(y)绘曲线,其中y=5 3 4 9 0 2 3。,y=5 3 4 9 0 2 3;plot(y),回车,运行结果显示出如图3
4、-2所示的曲线,其横坐标为向量1 2 3 4 5 6 7的元素值,纵坐标为向量y的元素值。,(2)参数调用方式:plot(x,y),【功能】:绘制以x为横坐标,y为纵坐标的二维曲线,其中参数x和y可以是向量或矩阵。,【格式】:参数x和y都是长度为n的向量,x为横坐标向量,y为纵坐标向量。,【说明】:Plot(x,y)命令格式,还可以包括多个长度和x向量相等的列向量,此时将在图形窗口中绘制出多条曲线。,例3-2example3-2.m,简单例题,比较方便的试验指令,t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)%结果如图3-3所示,【说明】:p
5、lot(x,y)命令多用来生成参数方程的图形。x和y必须方向相同(行或列)、长度相等,否则MATLAB将提示错误信息。,例3-3example3-3.m,绘制函数y=cos(x)在两个周期内的图形。,t=0:0.01:2*pi;y=cos(t);plot(t,y),将绘出如图3-4所示的两个周期的余弦曲线。,例3-4example3-4.m,在同一图形窗口中绘出正弦余弦函数的图形。,t=0:0.01:2*pi;y=sin(t);cos(t);plot(t,y),绘出的曲线见图3-5。,(3)plot(Y),在plot(Y)中,Y是一个mn的矩阵。MATLAB为矩阵的每一列划出一条线,共n条曲线
6、。同时以矩阵的行向量为基准对x轴进行分度和标注,标注时采用向量l:m,这里m是矩阵的行数。,例3-5example3-5.m,绘制矩阵Y=5 4 3 8 9 10;3 4 4 5 8 2;8 12 13 21 18 25;9 8 8 9 6 7的图形。,Y=5 4 3 8 9 10;3 4 4 5 8 2;8 12 13 21 18 25;9 8 8 9 6 7;plot(Y),如图3-6所示,MATLAB按矩阵Y的列向量绘制出六条曲线,而x轴的取值则为矩阵Y的行向量,即取1 2 3 4。,(4)混合调用方式:plot(X,Y),在混合式的命令格式中,对于X和Y而言,可分下列几种情况:,如果X
7、和Y都是向量,则长度必须相等;,如果X是向量,而Y是一个矩阵,X的长度与矩阵Y的行数或列数相等,则它的作用是将向量X与矩阵Y的每列或每行的向量相对应作折(曲)线,当Y是方阵时,则将向量X与矩阵Y的列向量对应作图;,如果X是矩阵,Y是向量,Y的长度等于矩阵X的行数或列数,则将X的每列或每行的向量与Y相对应作图。当X是方阵时,则将X的各列与Y对应作图;,如果X和Y都是矩阵,且维数相同,则按列与列的对应方式来作图。,例3-6example3-6.m,绘制混合式的图形。,x=l:length(peaks);plot(x,peaks),执行结果如图3-7所示。,例3-7example3-7.m,采用模型
8、 画一组椭圆曲线,【分析】:需要画的图形是一个平面图形,因此要使用plot函数。,引入中间变量,令:x=a sin,则,例3-7example3-7.m(续1),程序:,X=cos(cta)*a;%X为1019的矩阵Y=sin(cta)*sqrt(25-a.2);%Y为1019的矩阵,plot(X,Y),axis(equal),xlabel(x),ylabel(y)title(A set of Ellipses)%结果入图3-8所示,cta=0:pi/50:2*pi;%定义中间变量cta为长度101的列向量a=0.5:0.5:4.5;%定义a为长度9的行向量,代表所画椭圆的个数,(5)复向量调
9、用方式:plot(Z),当向量Z为一个复数向量时,MATLAB将会忽略向量的虚部。也可以在调用时独立给出一个复参数,这时相当于两个指令的组合。例如,命令plot(Z)和plot(real(Z),imag(Z)是等效的(这里Z是一个复向量)。,【说明】:plot(Z)是以实部为横坐标,以虚部为纵坐标来绘制曲线。,例3-8example3-8.m,用复数矩阵形式画Lissajous图形(在模拟信号时,Lissajous图形常用来测量信号的频率),t=linspace(0,2*pi,80);%X=cos(t),cos(2*t),cos(3*t)+i*sin(t)*1,1,1;%(803)的复数矩阵,
10、结果如图3-9所示。,plot(X)%axis square%使坐标轴长度相同 legend(1,2,3)%图例,(6)综合调用方式:plot(x1,y1,x2,y2,),【功能】:在同一窗口绘制多条曲线,而且每条曲线的横坐标可以不同,每一组向量也可以有不同的长度。,例3-9example3-9.m,在同一窗口中绘制多条曲线,并且坐标和长度都不同。,tl=0:0.1:3*pi;t2=0:0.1:6;plot(tl,sin(t1),t2,sqrt(t2),运行结果如图3-10所示,两条曲线的长度和坐标都不相同。,例3-10example3-10.m,用图形表示连续调制波形y=sin(t)sin(
11、9t)及其包络线。,t=(0:pi/100:pi);%长度为101的时间采样列向量 y1=sin(t)*1,-1;%包络线函数值,是(1012)的矩阵 y2=sin(t).*sin(9*t);%长度为101的调制波列向量,结果如图3-11所示。,t3=pi*(0:9)/9;%y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo)%axis(0,pi,-1,1)%控制轴的范围,2、对数坐标曲线,在MATLAB中,使用函数semilogx、semilogy和loglog用来绘制二维对数坐标曲线,这几个命令的用法和函数plot相同。,(1)semilo
12、gx(2)semilogy(3)loglog,【说明】:函数semilogx绘出的曲线,其横坐标为对数坐标;而函数semilogy绘制的曲线纵坐标为对数坐标;loglog绘制的曲线,横纵坐标均为对数坐标。,例3-12example3-12.m,绘制正弦函数的对数坐标曲线。,t=0.1:0.1:3*pi;y=sin(t);semilogx(t,y)grid on%grid on命令是为图形窗口添加网格,运行结果如图3-12所示。,3、双y轴图形,用plotyy函数可以绘制左右均有y轴的图形,有以下几种常用的调用格式:,(1)plotyy(x1,y1,x2,y2),【功能】:此种调用格式可以在窗口
13、中同时绘制两条曲线:(xl,y1)和(x2,y2),曲线(x1,y1)用左侧的y轴,曲线(x2,y2)用右侧的y轴。,(2)poltyy(x1,y1,x2,y2,fun),这种命令格式的使用与上面相同,只是多了fun一项。fun是字符串格式,用来指定绘图的函数名,如plot、semilogx、semilogy等。例如:,plotyy(xl,yl,x2,y2,semilogx);%用函数semilogx来绘制两条曲线,例3-15example3-15.m,用plotyy函数绘制双y轴图形。,tl=0:0.1:3*pi;t2=0:0.1:6;yl=sin(t1);y2=sqrt(t2);ploty
14、y(tl,y1,t2,y2,semilogx)grid on 为图形窗口添加网格,程序运行结果所绘的曲线如图3-13所示。,(3)poltyy(x1,y1,x2,y2,fun1,fun2),同第二种命令格式相类似,只是用funl和fun2指定不同的绘图函数分别绘制这两条曲线。,例3-17example3-17.m,在同一图形窗口中,用不同的绘图函数绘制同一函数曲线 的双y轴图形。,x=0:0.1:6;y=sqrt(x);plotyy(x,y,x,y,semilogy,plot),结果如图3-14所示。从图中可知,左侧的y轴为对数坐标,它与semilogy函数绘制的曲线对应;右侧的y轴为线性坐标
15、,它与plot函数绘制的曲线对应。,【注意】,plotyy函数不能加入设置曲线线型、颇色及标出数据点的参数。,二、线型与颜色,一般情况下,plot等函数在绘图时MATLAB自动安排作图的线型和线段的颜色以及线段顶点的标记。事实上,MATLAB中可以设置和管理曲线的线段类型、顶点标记和线段颜色等。,1、线型和颜色的参数,MATLAB定义的常用线段类型、顶点标记和线段颜色的参数如表3-1所示。,2、线型和颜色的设置,【格式】:在MATLAB(如plot函数)中,最典型的调用方式是三元组参数形式,即:,plot(x,y,s)%s为类型说明参数,它是字符串,由表3-1中列出的符号组成,【注意】:,(1
16、)s字符串可以是三种类型的符号之一(颜色、线型和顶点标记之一),也可以是线型与颜色和顶点标记与颜色的组合。例如,字符串“r”表示绘制红色的虚型;“:yx”表示绘制黄色点线,同时用符号“:x”标记数据点。,【注意】(续),(2)在plot函数指令中,如果没有s参数,plot将使用缺省设置绘制曲线。MATLAB缺省规定曲线一律用“实线”线型。不同曲线将按表3-1所给的前7种颜色次序着色。,(3)通常在当前坐标系中绘图时,每调入一次绘图函数,如调用plot时,MATLAB将擦掉坐标系中已有的图形对象。为了在一个坐标系中增加新的图形对象,可以用MATLAB的hold on命令达到这个目的。设置了hol
17、d on后,MATLAB再生成新的图形时,保留当前坐标系中已存在的图形对象。此时,MATLAB根据新图形的大小,可能会重新改变坐标系的比例。,例3-18example3-18.m,用不同的线型和标注来绘制两条曲线。,tl=0:0.1:2*pi;t2=0:0.1:6;yl=sin(t1);y2=sqrt(t2);plot(t1,y1,:hb,t2,y2,g),运行结果如图3-15所示。图中,正弦曲线用蓝色点线表示,其数值点用六角形绘制,而第二条函数曲线用绿色虚线表示。,三、fplot函数,一般的绘图命令,如plot等在绘制一个函数y=f(x)的图形时,必须先定义自变量调用的一组取值点,再求出这组
18、取值点的函数值,然后根据这两组数值确定的数据点绘制出所需的图形。而在实际应用中绘制函数二维曲线时一般并不清楚函数的具体情况,因而在确定自变量x的取值间隔时,一律用平均间隔,用这种方法绘制的的图形不够准确。,1、fplot函数的特点,二维数值函数曲线专用命令fplot是绘制函数y=f(x)图形的一个专用命令。该命令的特点在于它的绘图数据点是自适应产生的,即在函数曲线平坦处,它所取数据点比较稀疏,而在函数变化剧烈处,它将自动取较密的数据点。,2、fplot函数的调用格式,X,Y=fplot(fun,lims,tol,n,linespace,p1,p2,)或fplot(fun,lims,tol,n,
19、linespace,p1,p2,),各参数含义如下:,(1)fun 函数名字符串,可以是一个由多个分量函数构成的函数行向量,分量函数可以是MATLAB的已有函数,也可以是用户自己定义的函数;,(2)lims 定义z的取值区间,lims=xmin,xmax;,各参数含义(续),(3)tol 相对误差,默认值为2e-3,tol越小,所绘制的曲线就越接近实际曲线的情况,但系统将为此占用很大资源;,(4)n 绘图的最少点数(n+1);,(5)linespec 线性设置;,(6)p1,p2,函数传递参数;,(7)X,Y 数组数据点坐标。,【注意】,上述命令的格式调用时,MATLAB会把数据点坐标输入X、
20、Y,并没有用图形显示出来,如需要显示图形,可以不加这两个参数;如果要使用tol,n或是linespec的默认参数,可以给函数传递一个空矩阵作为参数;,在相同的数据下,自适应取点所绘的图形更加真实;自适应取点所用的时间较长。,例3-20example3_20.m,fplot和plot命令的比较。,(1)创建函数M文件funfplot function y=funfplot(x)y=sin(1./tan(pi.*x);,(2)将用分配咯fplot命令求得的坐标点,按照对应大小,创建一个等间距坐标点赋值给矩阵X,Y X,Y=fplot(funfplot,-0.1,0.1,2e-4);n=size(X
21、);x=-0.1:0.2/(n(1)+1):0.1;y=funfplot(x);,例3-20example3_20.m(续),(3)用fplot和plot命令作图,比较二者的不同 plot(x,y)figure 打开一个新的图形窗口 plot(X,Y)该命令等价于fplot(funfplot,-0.1,0.1,2e-4),运行结果如图3-12、图3-13所示。,四、ezplot函数,1、ezplot函数的特点,ezplot函数是二维符号函数或字符串函数的专用绘图命令。,2、ezplot的调用格式,ezplot(sym-fun,limits),各参数含义如下:,(1)sym-fun 符号函数或代
22、表它的符号变量;(2)limits 为自变量x的取值范围,即limits=xl,x2,其默认值为-2pi,2pi。,例3-22example3_22.m,ezplot绘图函数的用法。,syms xf=(x2)(cos(x)2);ezplot(f),其运行结果如图3-18所示。,五、图形窗口的分割,有时需要在一个图形窗口中显示几幅图形,以便对几个函数进行直观的比较。由于每个绘图命令在绘制数据图像时都会将已有的图形覆盖掉,而用hold命令不能实现同时显示几个不同坐标尺寸下的图形,用figure命令再创窗口又很难同时比较由不同的数据绘得的图像。,1、subpolt函数的作用,MATLAB中,subp
23、lot函数用来实现在同一个窗口中同时显示多个图像。,2、subpolt函数的调用格式,subplot(m,n,i),【含义】:,把图形窗口分割为m行n列子窗口,然后选定第i个窗口为当前窗口。例如:subplot(2,2,4)意为把图形窗口分为2行2列共4个子窗口,选择第2行第2列(排序为4)的子窗口为当前窗口进行操作。,3、subplot函数的使用,subplot命令不仅用于二维图形,对三维图形一样适用。其本质是将figure窗口分为几个区域,再在每个区域内分别绘图。,(1)如果坐标系存在,则将其设为当前坐标系。,subplot(position,left bottom width heigh
24、t),是在普通坐标系中创建一个新的坐标系。其中各参量在0到1之间取值。,3、subplot函数的使用(续),(2)如果subplot命令所指定的区域与原有的区域重合(全部或部分),原区域将被删除。,(3)subplot(111)是一个特殊的情况,它与subplot(1,1,1)不同,该调用并不立刻创建坐标系,而是使下一条绘图命令在窗口中执行clf和reset命令(删除当前图形的所有子对象),然后在默认位置创建一个坐标系。这种调用没有返回值。,例3-25example3_25.m,用subplot函数把两种不同的图形综合在一个图形窗口中。,subplot(2,2,1)t=0.1:0.1:2*pi
25、;y=sin(t);semilogx(t,y)grid onsubplot(2,2,2)t=0:0.1:4*pi;y=sin(t);plot(t,y),其运行结果如图3-20所示。,subplot(2,2,3)x=1:0.01:5;y=exp(x);plotyy(x,y,x,y,semilogx,plot),subplot(2,2,4)x=1:0.1:10;y=sqrt(x);plot(x,y,:rd),六、坐标系的调整,MATLAB的绘图函数可以根据要绘制的曲线数据范围自动地选择合适的坐标系,使曲线尽可能清晰地显示出来。因此,一般情况下用户不必自己选择绘图坐标。如果觉得自动选择的坐标不太合适
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB ch03 计算 结果 可视化
链接地址:https://www.31ppt.com/p-5438853.html