《北京科技大学matlab和数学实验绘图》由会员分享,可在线阅读,更多相关《北京科技大学matlab和数学实验绘图(47页珍藏版)》请在金锄头文库上搜索。
1、MATLAB 绘图绘图1 1二维曲线绘图二维特殊图形三维曲线绘图三维曲面绘图2 2一、 MATLAB二维曲线绘图二维曲线绘图1、基本绘图指令命令形式1:plot(y)功能:画一条或多条折线图。将(i,y(i)画出,x取的是自然数3 3例:y=2,3,5,6; 8,5,7,4; 4,5,6,7; plot(y)4 4命令形式2:plot(x,y)功能:画一条或多条折线图。其中,x,y可以是向量或矩阵。说明:1、当x,y都是向量时,元素个数必须相等,plot(x,y)按顺序连接各点(x(i),y(i)成一条曲线或折线。5 5例:例:x=1 2 3; y=3 2 5; plot(x,y)6 6说明:
2、说明:2、当x为n维向量,y为n*m矩阵时,plot(x,y)按向量x分别与矩阵y的每一列匹配,画出m条曲线或折线。例例 x= 3 4 7; y=4 5 6 5 4 7 9 5 1 4 2 5; plot (x,y)7 7思考:思考: 1、当、当x为为n维向量,维向量,y为为m x n 矩阵时,矩阵时, plot(x,y)怎么画?怎么画? 2、当、当x为为n维向量,维向量,y为为m x w 矩阵时,矩阵时, plot(x,y)怎么画?怎么画? 3、当、当x为为n维向量,维向量,y为为n x n 矩阵时,矩阵时, plot(x,y)怎么画?怎么画? 4、当、当x,y为为n x n 矩阵时,矩阵时
3、,plot(x,y) 怎么画?怎么画? 8 8可以。x=a:h:b 函数函数f(x)f(x)在绘图区间在绘图区间a,ba,b上的自变量点向上的自变量点向 量数据量数据y=f(x)对应的函数值向量对应的函数值向量步长h可以任意选取,步长越小,曲线越光滑。问题:问题:plot(x,y)plot(x,y)命令可以用来画通常的函数命令可以用来画通常的函数f(x)f(x)(其中(其中axb)axb)的图像?的图像?9 9例例1 1 在区间-,上,绘制函数y=sin(x)图形。gridon作用是:在图形中标出网格线解:Matlab命令:x=-pi:pi/50:pi;y=sin(x);plot(x,y),g
4、ridon1010曲线y = sin x 1111 命令形式3:plot(x1,y1,x2,y2,x3,y3)功能:在同一图形窗口画出多条曲线功能:在同一图形窗口画出多条曲线 。例例2 2 :在同一图形窗口画出三个函数在同一图形窗口画出三个函数y =2x, y = cosx, y =sin x的图形的图形,自变量范围为自变量范围为:-3 x 3解解 MatlabMatlab命令:命令:x=-3:0.1:3;y1=2*x;y2=cos(x);y3=sin(x);plot(x,y1,x,y2,x,y3)legend(2*x,cos(x),sin(x)legend作用是:对图形进行图例标注1313例
5、2的绘图结果1414图形的重叠绘制图形的重叠绘制holdhold holdhold 在在hold onhold on与与 hold offhold off之间进行切换之间进行切换 hold on hold on 保留当前图形和它的轴保留当前图形和它的轴, ,使此后图形叠放在当使此后图形叠放在当前图形上前图形上 hold hold off返回返回MatlabMatlab的缺省状态。此后图形指令运的缺省状态。此后图形指令运作将抹掉当前窗中的旧图形,然后画上新图形。作将抹掉当前窗中的旧图形,然后画上新图形。 2基本绘图控制参数控制分隔线控制分隔线gridgridgrid grid 在在grid on
6、grid on与与 grid offgrid off之间进行切换之间进行切换grid ongrid on 在图中使用分隔线在图中使用分隔线grid offgrid off 在图中消隐分隔线在图中消隐分隔线15153线型、定点标记、颜色 二维绘图指令还提供一组控制曲线线型、标记类型、颜色的二维绘图指令还提供一组控制曲线线型、标记类型、颜色的开关。该开关总跟在一元或二元对的后面,具体如下:开关。该开关总跟在一元或二元对的后面,具体如下:plot(x,y, String)plot(x1,y1, String1,x2,y2, String2,)其中,其中,stringstring是字符串,该字符串由表
7、是字符串,该字符串由表4-14-1、表、表4-24-2表表4-34-3(见课本(见课本P45P45)中的字符组成。)中的字符组成。1616例例6 6 利用利用holdhold指令在同一坐标系中画出如下两条参数曲指令在同一坐标系中画出如下两条参数曲线,参数曲线方程为:线,参数曲线方程为: t满足解Matlab命令为t=0:pi/50:2*pi;plot(cos(t),sin(t),b*),gridon,holdon,plot(sin(t),sin(2*t),r.)171718184图形的标注图名标注图名标注titletitle(String) 在图形的顶端加注文字作为图名在图形的顶端加注文字作为
8、图名坐标轴标注坐标轴标注xlabel,ylabel,zlabelxlabel(String) 在当前图形的在当前图形的x x轴旁边加入文字内容轴旁边加入文字内容ylabel(String) 在当前图形的在当前图形的y y轴旁边加入文字内容轴旁边加入文字内容zlabel(String) 在当前图形的在当前图形的z z轴旁边加入文字内容轴旁边加入文字内容1919图形标注图形标注gtextgtext(String)在鼠标指定位置上标注在鼠标指定位置上标注 说明:使用gtext指令后,会在当前图形上出现一个十字叉,等待用户选定位置进行标注。移动鼠标到所需位置按下鼠标左键,Matlab就在选定位置标上文
9、字。 图例标注图例标注legendlegend(string1,string2,string3) 当在一幅图中出现多种曲线时,结合在绘制时的不同线性与颜色等特点,用户可以用legend命令进行说明。20205.一个图形窗口多个子图的绘制subplot指令它不仅适用于二维图形而且也适用于三维图形。其本质是将窗口分为几个区域,再在每个小区域中画图形。l subplot(m, n,i)subplot(m, n,i)或或subplot(mni) subplot(mni) 把图形窗口分为mn个子图,并在第i个子图中画图。2121 例例7 7 在同一坐标系中画出两个函数在同一坐标系中画出两个函数y = c
10、os 2x , y = sin x sin 6x的图形的图形,自变量范围为自变量范围为:-2 x 2, 函数函数 y = cos 2x用红色星号用红色星号, 函数函数y = sin x sin 6x用蓝色实线。用蓝色实线。并加图名、坐标轴、图形、图例标注。并加图名、坐标轴、图形、图例标注。 解:解: MatlabMatlab命令为命令为clfx=0:pi/50:pi;y1=cos(2*x);y2=sin(x).*sin(6*x);subplot(1,2,1);plot(x,y1,r*,x,y2,b-),gridontitle(曲线y1=cos2x与sinxsin6x)xlabel(x轴),yl
11、abel(y轴)gtext(y1=cos2x),gtext(y2=sinxsin6x)legend(cos2x,sinxsin6x)subplot(1,2,2);plot(x,y1,x,y2)22222323二、 MATLAB二维特殊图形二维特殊图形特殊的二维图形area填满绘图区域feather羽状图bar条形图fill填满两维多边形barh水平条形图pie饼图compass极坐标向量图stem离散杆图comet彗星轨迹图stairs阶梯图errorbar误差条图plotmatrix矩阵散布图quiver矢量图ribbon带状图pcolor伪色彩图等高线图形contour等高线图contou
12、rf填充的等高线图clabel等高线图标出字符2424例:绘制条形图 t=0:pi/5:2*pi;y=cos(t);bar(y)2525例:绘制面积图 (1)x=1:4;y=1234;area(x,y)2626例:绘制面积图 (2)x=1:4;y=142;243;475;054;area(x,y)2727例:绘制饼图 x=3048362012;explode=00001;pie(x,explode)2828例:绘制火柴棍图 x=0:.1:2;y=exp(-x.2);stem(y)2929例:绘制阶梯图 x=0:pi/20:2*pi;y=sin(2*x);stairs(x,y)3030例:极坐标
13、图polar(t,r) 使用极角t和极径r绘制极坐标图形;t=0:pi/50:2*pi;polar(t,abs(sin(4*t),r)3131三、MATLAB三维曲线绘图plot3三维曲线绘制指令plot3的调用格式:lplot3(X,Y,Z)lplot3(X,Y,Z,String)lplot3(X1,Y1,Z1,String1,X2,Y2,Z2,String2,)plot3与plot的用法相同3232例:绘制三维曲线的图像:,t=0:pi/10:20*pi;x=t.*sin(t);y=t.*cos(t);z=t;plot3(x,y,z)解:matlab命令为:3333四、Matlab空间曲面
14、绘图Meshgrid命令:Mesh命令与Surf命令:用来生成x-y平面上的小矩形顶点坐标值的矩阵,也称为格点矩阵。分别生成函数的网格曲面;与生成函数的表面曲面。3434Meshgrid命令介绍二元函数z=f(x,y)的图形是三维空间曲面,在Matlab中总是假设函数z=f(x,y)是定义在矩形区域D=x0,xmy0,yn上的。为了绘制三维曲面,Matlab把x0,xm分成m份,把y0,yn分成n份,这时区域D就被分成mn个小矩形块。每个小矩形块有4个顶点(顶点也叫格点)(xi,yi,f(xi,yi).连接4个顶点得到一个空间中的四边形片。所有这些四边形片就构成函数的空间网格曲面。而函数mes
15、hgrid就用来生成x-y平面上的小矩形顶点坐标值的矩阵,也称为格点矩阵。函数meshgrid也适用于三元函数u=f(x,y,z)。 3535meshgrid的调用形式是的调用形式是:X,Y=meshgrid(x,y)X,Y=meshgrid(x)X,Y,Z=meshgrid(x,y,z)X,Y=meshgrid(x,x)。绘制二维图形时生成 小矩形的格点。X,Y,Z=meshgrid(x)绘制三维图形时生 成空间曲面的格点。等价于 X,Y,Z=meshgrid(x,x,x)等价于3636说明:x是区间x0,xm上分划点组成的m维向量;y是区间y0,yn上分划点组成的n维向量;输出变量X与Y都
16、是nm矩阵;矩阵X的行向量都是向量x;矩阵Y的列向量都是向量y。3737例:x=1,2,3;y=1,2,3,4;X,Y=meshgrid(x,y) X = 1 2 3 1 2 3 1 2 3 1 2 3 Y = 1 1 1 2 2 2 3 3 3 4 4 43838Mesh命令与Surf命令Mesh命令介绍利用函数meshgrid生成格点矩阵后,然后求出各格点对应的函数值,然后利用三维网格图命令mesh与三维网面图命令画出空间曲面。函数mesh用来生成函数的网格曲面,只对网格线进行着色的曲面。函数surf用来生成函数的表面曲面,即对网格曲面的网格块(四边形片)区域进行着色。3939mesh(X
17、,Y,Z)mesh 指令格式:mesh(x,y,Z)mesh(Z)否则默认x=1:n,y=1:mlX,Y,Z是同维数的矩阵x,y是向量,而Z是矩阵。等价于若提供参数x,y,等价于 mesh(x,y,Z), 4040例例:x=1,2,3y=1,2,3,4X,Y=meshgrid(x,y) X = 1 2 3 Y =1 1 1 1 2 3 2 2 2 1 2 3 3 3 3 1 2 3 4 4 4 Z=ones(size(X);mesh(X,Y,Z)4141surf绘制三维曲面图与三维网格图的区别:网格图:线条有颜色,空挡没有颜色曲面图:线条是黑色,空挡有颜色(把线条之间的空挡填充颜色,沿z轴按每
18、一网格变化)4242解:matlab命令为:t=-2:0.1:2;x,y=meshgrid(t);z=x.*exp(-x.2-y.2);subplot(1,2,1),mesh(x,y,z),title(网格图)subplot(1,2,2),surf(x,y,z),title(曲面图)例:绘制函数的图像,比较指令mesh和surf。 43434444例例 用平行截面法讨论由方程构成的马鞍面形状。用平行截面法讨论由方程构成的马鞍面形状。解:解:MatlabMatlab命令为命令为t=-10:0.1:10;x,y=meshgrid(t);z1=(x.2-2*y.2)subplot(1,3,1),mesh(x,y,z1),title(马鞍面)a=input(a=(-50a50),z2=a*ones(size(x);subplot(1,3,2),mesh(x,y,z2),title(平面)r0=abs(z1-z2)=1;zz=r0.*z2;yy=r0.*y;xx=r0.*x;subplot(1,3,3),plot3(xx(r0=0),yy(r0=0),zz(r0=0),x)title(交线)4545马鞍面、平面及交线4646P79 第3,5,9题 。要求:作业已实验报告的形式(模板)上交电子版4747