第3章-MATLAB绘图

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章MATLAB绘图3.1二维数据曲线图3.2其他二维图形3.3三维图形3.4本章小结3.1二维数据曲线图3.2其他二维图形3.3三维图形3.4本章小结MATLAB不仅具有强大的数值计算能力,同时具备非常便利的绘图功能。050100150200250-2-1012340.10.20.30.40.5302106024090270120300150330180001234567-1.5-1-0.500.511.526%6%11%11%17%22%28%-4-2024-4-2024-10-50510510152025303540510152025303540这些图形是怎么画出来的?下面我们一起来学习MATLAB的绘图功能。3.1.1绘制单根二维曲线1plot函数在MATLAB中,绘制图像时使用最频繁的函数是plot函数。也称为画图函数。plot函数的基本调用格式如下:plot(y):一个输入参数y,可为向量,可为矩阵。plot(x,y):两个输入参数x,y,可为向量(x,y长度要求相同,x为横坐标,y为纵坐标);可为矩阵(x,y要求维数相同)。例在0≤t≤2pi区间内,绘制曲线y=3cost+1。MATLAB代码如下:t=0:pi/100:2*pi;y=3*cos(t)+1figureplot(y)例已知t的范围是0到2π,x=2*t;y=t.*sin(t).*sin(t),请画出关于x、y的曲线图。0246810121400.511.522.533.544.55MATLAB代码如下:t=0:0.1:2*pi;x=2*t;y=t.*sin(t).*sin(t);plot(x,y);例已知x=rand(4,4),y=randn(4,4),请画出关于x、y的曲线图。00.20.40.60.81-1.5-1-0.500.511.52MATLAB代码如下:x=rand(4,4);y=randn(4,4);figureplot(x,y,'LineWidth',3)关于MATLAB单根二维曲线大致分为3种类型:(1)确定好一个坐标轴的范围,输入另一个坐标轴变量的表达式。(2)要画出的图像和设置的基本变量本身是间接关系,都是关于已知范围的变量的函数。只要掌握这两种方法即可。(3)最简单的调用格式。plot函数最简单的调用格式是只包含一个输入参数,plot(x),当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。2.line函数在MATLABB中,用line函数画出直线型的图。其调用格式如下:line(x,y):以向量x和y的元素为坐标点绘制直线。line(x,y,z):以向量x、y和z的元素为坐标点绘制三维直线。例已知x=[0:pi];y=2*sin(4*x).,试用line函数绘图。00.511.522.53-2-1.5-1-0.500.511.52其MATLAB代码如下:x=0:1/pi:pi;y=2*sin(4*x);%绘制直线figureline(x,y)例已知x=[0:pi];y=[0:pi];z=2*sin(4.*x.*y),试用line函数绘图。00.511.522.530123-2-1.5-1-0.50MATLAB代码如下:x=[0:pi];y=[0:pi];z=2*sin(4.*x.*y);%绘制直线figureline(x,y,z)3.极坐标下的polar函数在极坐标下,MATLAB利用polar函数绘制曲线,其调用方式如下:polar(theta,rho):在极坐标系中,以角度theta和半径rho进行绘图。polar(theta,rho,s):在极坐标系中,以线形s绘制角度为theta和半径为rho曲线。例利用polar函数绘制轮胎图。0.20.40.60.813021060240902701203001503301800MATLAB代码如下:%设定角度theta=0:45;%设定对应角度的半径rho=ones(1,length(theta));%绘图figurepolar(theta,rho)例利用polar函数在极坐标下进行绘图。MATLAB代码如下:%角度t=0:.01:2*pi;%设定对应角度的半径r=sin(2*t).*cos(2*t);%绘图figurepolar(t,r,'--r')3.1.2绘制多根二维曲线在MATLAB中绘制多个二维曲线主要有3种方式:通过对多维数组进行图形绘制。通过特殊的MATLAB函数进行图像绘制。通过对多个绘图函数叠加得到多根二维曲线图。常用的多维数组建立的方式有4种:(1)利用下标建立多维数组。(2)利用MATLAB函数产生多维数组。(3)利用cat函数建立多维数组。(4)用户自己编写M文件产生多维数组,即用户自己编写代码产生多维数组。1.plot函数的输入参数是矩阵形式若x是向量,y是矩阵,当y矩阵中的一维与向量x同维时,能绘出多条不同颜色的曲线。且当曲线条数与y矩阵的另一维相同时,x可作为多条曲线的共同横坐标。若x、y均为矩阵且维数相同时,以x和y对应的列元素分别作为横、纵坐标绘制曲线,此时,曲线条数与矩阵列数相同。当plot函数中只有一个输入参数时,若该输入参数为实矩阵,按列绘制曲线,此时曲线条数与输入矩阵列数相同。当输入参数为复数矩阵时,绘制曲线时需按列分别将元素实部、虚部为横、纵坐标绘制曲线。例以单位阵A和全1阵B为输入进行图形绘制。00.10.20.30.40.50.60.70.80.9100.20.40.60.811.21.41.61.82MATLAB程序代码如下:%生成单位阵A=eye(4);%生成全1阵B=ones(4);%绘图figureplot(A,B)2.含多个输入参数的plot函数调用格式如下:plot(x1,y1,x2,y2,...,xn,yn):当输入参数是向量时,x1与y1,x2与y2,...,xn与yn组成n组向量对(每组向量对的长度可以不同),可以绘制出n条曲线;当输入参数是矩阵时,矩阵x1与y1,x2与y2,...,xn与yn对应列元素为横、纵坐标分别绘制曲线,此时曲线条数与矩阵列数相同。例尝试绘制正余弦双曲线图。-4-3-2-101234-1-0.8-0.6-0.4-0.200.20.40.60.81MATLAB程序如下:x=-pi:0.01:pi;%产生数据y=sin(2*x+pi/3);y1=cos(3*x+pi/3);%绘图plot(x,y,x,y1,'LineWidth',3)例尝试绘制不同长度的正弦曲线图。-4-3-2-101234-1-0.8-0.6-0.4-0.200.20.40.60.81MATLAB程序如下:t1=-pi:0.01:pi;t2=0:0.01:pi/2;%产生数据y1=sin(2*t1+pi/3);y2=sin(3*t2+pi/3);%绘图plot(t1,y1,'k-',t2,y2,'k-.','LineWidth',3)通过特殊的MATLAB函数进行图像绘制。主要有plotyy函数、contour函数、clabel函数、contourc函数等。1.具有两个纵坐标标度的图形使用plotyy绘图函数,其调用格式为:•plotyy(x1,y1,x2,y2):其中x1,y1对应一条曲线,x2,y2对应另一条曲线。左纵坐标对应x1,y1,右纵坐标对应x2,y2。•plotyy(x1,y1,x2,y2,fun):左纵坐标利用函数fun将x1和y1数据对绘制成图形,右纵坐标利用函数fun将x2,y2数据对绘制成图形。•plotyy(x1,y1,x2,y2,fun1,fun2):左纵坐标下,是使用函数fun1将x1和y1数据绘成曲线,右纵坐标下,是使用函数fun2将x2,y2数据绘成曲线。例用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4πx)和y2=2e-0.5xcos(πx)。MATLAB程序如下:x=0:pi/100:2*pi;%生成曲线y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);%绘图figureplotyy(x,y1,x,y2);plot(x,y1,'k-',x,y2,'k-.','LineWidth',3)例现在举一个简单的调用plotyy(x1,y1,x2,y2,fun1,fun2)的例子。02040608010001000204060801001001010MATLAB程序如下:%生成横轴数据x1=1:0.1:100;x2=x1;%生成纵轴数据y1=x1;y2=x2.^3;%利用不同的函数绘图figureplotyy(x1,y1,x2,y2,@plot,@semilogy)2.contour函数contour函数主要用来绘制曲面的等高线图,其调用方法如下:contour(z):把矩阵z中的值作为一个二维函数的值,等高曲线在一个平面内,平面的高度v由MATLAB自动选取,绘制等高线。contour(x,y,z):(x,y)是平面z=0上点的坐标矩阵,z为相应点的高度值矩阵,绘制等高线。contour(z,n):画出矩阵z的n条等高线。contour(x,y,z,n):画出矩阵z的n条等高线。contour(z,v):在指定的高度v上画出等高线。例用contour函数画peaks函数。MATLAB程序如下:z=peaks(40);figurecontour(z,'k')例用contour函数画sinxcosy的等高线。00.511.522.5300.511.522.53MATLAB程序如下:x=0:0.1:pi;y=0:0.1:pi;%生成坐标系[xx,yy]=meshgrid(y,x);%生成曲面z=sin(xx).*cos(yy);%绘制等高线figurecontour(xx,yy,z,'k');3.clabel函数主要功能是在二维等高线图中添加高度标签。在下列形式中,若有h出现,则会对标签进行恰当的旋转,否则标签会竖直放置,且在恰当的位置显示个一个“+”号。该函数的调用格式如下:clabel(C,h):把标签旋转到恰当的角度,再插入到等高线中。只有等高线之间有足够的空间时才加入,当然这决定于等高线的尺度。clabel(C,h,v):在指定的高度v上显示标签h,当然要对标签做恰当的处理。clabel(C,h,'manual'):手动设置标签。用户用鼠标左键或空格键在最接近指定的位置上放置标签,用键盘上的回车键结束该操作。当然会对标签做恰当的处理。clabel(C):在从命令contour生成的等高线结构c的位置上添加标签。此时标签的放置的位置是随机的。例现在对上例中的等高线加上适当的标准。其MATLAB程序如下:x=0:0.1:pi;y=0:0.1:pi;%生成坐标系[xx,yy]=meshgrid(y,x);%生成曲面z=sin(xx).*cos(yy);%绘图,加标注figure[C,h]=contour(xx,yy,z);clabel(C,h);-0.8-0.8-0.6-0.6-0.6-0.4-0.4-0.4-0.4-0.2-0.2-0.2-0.2000000.20.20.20.20.40.40.40.40.60.60.60.80.800.511.522.5300.511.522.534.contourc函数其调用格式如下:C=contourc(z):从矩阵z中计算等高矩阵,其中z的维数至少为2*2阶,等高线为矩阵z中数值相等的单元。等高线的数目和相应的高度值是自动选择的。C=contourc(z,n):在矩阵z中计算出n个高度的等高线。C=contour(z,v):在矩阵z中计算出给定高度向量v上计算等高线,当然向量v的维数决定了等高线的数目。若只要计算一条高度为a的等高线,输入:contourc(Z,[a,a])。C=contourc(x,y,z)在矩阵z中,参量x,y确定

1 / 119
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功