《(精品)matlab课件:第5章MATLAB绘图.ppt》由会员分享,可在线阅读,更多相关《(精品)matlab课件:第5章MATLAB绘图.ppt(98页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章MATLAB绘图绘图5.1二维图形二维图形5.2三维图形三维图形5.3三维图形的精细处理三维图形的精细处理5.4隐函数绘图隐函数绘图5.5低层绘图操作低层绘图操作(选讲选讲)5.6光照和材质处理光照和材质处理5.7图像显示与动画制作图像显示与动画制作5.1二维图形二维图形5.1.1 5.1.1 绘制二维曲线的基本函数绘制二维曲线的基本函数1.plot函数的基本用法函数的基本用法plot函数的基本调用格式为:函数的基本调用格式为:plot(x,y)plot(x,y)其中其中x x和和和和y y为长度相同的向量为长度相同的向量为长度相同的向量为长度相同的向量,分别用于存储,分别用于存储x
2、坐标和坐标和y坐标数据。坐标数据。请看以下两例请看以下两例请看以下两例请看以下两例2例例5.1在在0X2 区间内,绘制曲线区间内,绘制曲线y=2e-0.5xsin(2x)。x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y)3例例5.2绘制参数方程曲线绘制参数方程曲线t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).*sin(t);plot(x,y);4说说明明当当x x是向量是向量是向量是向量,y y是有一维与是有一维与是有一维与是有一维与x x同维的矩阵同维的矩阵同维的矩阵同维的矩阵时,则绘制出时,则
3、绘制出多根多根多根多根不同色彩的曲不同色彩的曲线。曲线线。曲线条数等于条数等于条数等于条数等于y y矩阵的另一维数矩阵的另一维数矩阵的另一维数矩阵的另一维数,x被作为这些曲线共同的横坐标。被作为这些曲线共同的横坐标。当当x,yx,y是同维矩阵是同维矩阵是同维矩阵是同维矩阵时,则以时,则以x,yx,y对应列元素为横、纵坐标对应列元素为横、纵坐标对应列元素为横、纵坐标对应列元素为横、纵坐标分别绘制曲线,分别绘制曲线,曲线曲线条数等于矩阵的列数条数等于矩阵的列数条数等于矩阵的列数条数等于矩阵的列数。plot函数最简单的调用格式是函数最简单的调用格式是只包含一个输入参数只包含一个输入参数只包含一个输入
4、参数只包含一个输入参数:plot(x)。5x=linspace(0,2*pi,100);%xis1x100y=sin(x);cos(x);%yis2x100%linspace(X1,X2,N)generatesNpointsbetweenX1andX2plot(x,y)程序首先产生程序首先产生一个行向量一个行向量一个行向量一个行向量x x,然后然后分别求取行向量分别求取行向量分别求取行向量分别求取行向量sin(x)sin(x)和和和和cos(x)cos(x),并将它们并将它们构成矩阵构成矩阵构成矩阵构成矩阵y y的两的两的两的两行,行,最后在同一坐标中最后在同一坐标中同时绘制出两条曲线同时绘制
5、出两条曲线同时绘制出两条曲线同时绘制出两条曲线6t=linspace(0,2*pi,100);x=t;t;%xis100 x2y=sin(t);cos(t);%yis100 x2plot(x,y)7t=0:0.01:2*pi;%tis1x629x=exp(i*t);%xis1x629plot(x)当当当当x x是是是是实向量实向量实向量实向量时,则以该时,则以该时,则以该时,则以该向量元素的下标为横坐标向量元素的下标为横坐标向量元素的下标为横坐标向量元素的下标为横坐标,元素值为纵坐标元素值为纵坐标元素值为纵坐标元素值为纵坐标画出一条画出一条画出一条画出一条曲线曲线曲线曲线 当当当当x x是是是
6、是复数向量复数向量复数向量复数向量时,则时,则时,则时,则分别以该向量元素的实部和虚部为横、纵坐标分别以该向量元素的实部和虚部为横、纵坐标分别以该向量元素的实部和虚部为横、纵坐标分别以该向量元素的实部和虚部为横、纵坐标绘制出一绘制出一绘制出一绘制出一条曲线条曲线条曲线条曲线8t=0:0.01:2*pi;%tis1x629x=exp(i*t);%xis1x629y=x;2*x;3*x;%yis629x3plot(y)当当当当x x是是是是实矩阵实矩阵实矩阵实矩阵时,则时,则时,则时,则按列绘制每列元素值相对其下标的曲线按列绘制每列元素值相对其下标的曲线按列绘制每列元素值相对其下标的曲线按列绘制每
7、列元素值相对其下标的曲线,曲线,曲线,曲线,曲线条数等于条数等于条数等于条数等于x x矩阵的列数矩阵的列数矩阵的列数矩阵的列数 当当当当x x是是是是复数矩阵复数矩阵复数矩阵复数矩阵时,则时,则时,则时,则按列分别以元素实部和虚部为横、纵坐标按列分别以元素实部和虚部为横、纵坐标按列分别以元素实部和虚部为横、纵坐标按列分别以元素实部和虚部为横、纵坐标绘制多条曲线绘制多条曲线绘制多条曲线绘制多条曲线92含多个输入参数的含多个输入参数的plot函数函数含多个输入参数的含多个输入参数的plot函数调用格式为:函数调用格式为:plot(x1,y1,x2,y2,plot(x1,y1,x2,y2,xn,yn
8、xn,yn)当输入参数当输入参数均为向量均为向量时:每一组向量对绘制一条曲线,每一对的长度可以不同时:每一组向量对绘制一条曲线,每一对的长度可以不同当输入参数当输入参数有矩阵有矩阵时:时:配对的配对的x x,y y按对应列元素为横、纵坐标分别绘制曲线,按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数曲线条数等于矩阵的列数前者见过前者见过后者举例如下:后者举例如下:x=linspace(0,2*pi,100);x=linspace(0,2*pi,100);%1x100%1x100y1=sin(x);y1=sin(x);%1x100%1x100y2=2*sin(x);y2=2*sin(
9、x);%1x100%1x100y3=3*sin(x);y3=3*sin(x);%1x100%1x100 x=x;x;x;x=x;x;x;%100 x3%100 x3y=y1;y2;y3;y=y1;y2;y3;%100 x3%100 x3plot(x,y,x,cos(xplot(x,y,x,cos(x)p p8 86 60 0.m m103含选项的含选项的plot函数函数含选项的含选项的plot函数调用格式为:函数调用格式为:plot(x1,y1,plot(x1,y1,选项选项选项选项1,x2,y2,1,x2,y2,选项选项选项选项2,2,xn,ynxn,yn,选项选项选项选项n)n)绘图选项,
10、用于确定所绘曲线的线型、颜色和数据点标记颜色,见表绘图选项,用于确定所绘曲线的线型、颜色和数据点标记颜色,见表5.15.1,可组合使用,可组合使用当选项省略时,当选项省略时,MatlabMatlab规定:线型一律用规定:线型一律用实线实线,颜色将根据曲线的,颜色将根据曲线的先后顺序依次采用先后顺序依次采用 表中的前七种颜色表中的前七种颜色(蓝色蓝色b b,绿色绿色g g,红色红色r r,青色青色c c,品红品红 色色m m,黄色黄色y y,黑色黑色k k)p p8 86 61 1.m m11 b blue .point -solid g green o circle :dotted r red
11、 x x-mark -.dashdot c cyan +plus -dashed m magenta *star y yellow s square k black d diamond v triangle(down)triangle(up)triangle(right)p pentagram h hexagram12例例5.3用不同线型和颜色在同一坐标内绘制曲线用不同线型和颜色在同一坐标内绘制曲线y=2e-0.5xsin(2x)及其包络线。及其包络线。x=(0:pi/100:2*pi);%201x1y1=2*exp(-0.5*x)*1,-1;%201x2矩阵乘矩阵乘:列向量列向量201x1和
12、行向量和行向量1x2乘乘y2=2*exp(-0.5*x).*sin(2*pi*x);%201x1两个列向量两个列向量201x1点乘点乘x1=(0:12)/2;%1x13y3=2*exp(-0.5*x1).*sin(2*pi*x1);%1x13plot(x,y1,g:,x,y2,b-,x1,y3,rp);%绿色虚线绿色虚线,蓝色双划线蓝色双划线,红色五角星符红色五角星符p p8 86 6.m mx x =(0 0:p pi i/1 10 00 0:2 2*p pi i);%2 20 01 1x x1 1y y1 1 =2 2*e ex xp p(-0 0.5 5*x x)*1 1,-1 1;%2
13、 20 01 1x x2 2 矩矩阵阵乘乘:列列向向量量2 20 01 1x x1 1和和行行向向量量1 1x x2 2乘乘y y2 2 =2 2*e ex xp p(-0 0.5 5*x x).*s si in n(2 2*p pi i*x x);%2 20 01 1x x1 1 两两个个列列向向量量2 20 01 1x x1 1点点乘乘x x1 1 =(0 0:1 12 2)/2 2;%1 1x x1 13 3y y3 3 =2 2*e ex xp p(-0 0.5 5*x x1 1).*s si in n(2 2*p pi i*x x1 1);%1 1x x1 13 3p pl lo o
14、t t(x x,y y1 1,g g:,x x,y y2 2,b b-,x x1 1,y y3 3,r rp p);%绿绿色色虚虚线线,蓝蓝色色双双划划线线,红红色色五五角角星星符符13x=(0:pi/100:2*pi);%201x1y1=2*exp(-0.5*x)*1,-1;%201x2矩阵乘矩阵乘:列向量列向量201x1和行向量和行向量1x2乘乘y2=2*exp(-0.5*x).*sin(2*pi*x);%201x1两个列向量两个列向量201x1点乘点乘x1=(0:12)/2;%1x13y3=2*exp(-0.5*x1).*sin(2*pi*x1);%1x13plot(x,y1,g:,x,
15、y2,b-,x1,y3,rp);%绿色虚线绿色虚线,蓝色双划线蓝色双划线,红色五角星符红色五角星符?Errorusing=*Innermatrixdimensionsmustagree.14在Matlab环境下的figure窗口中,保存当前图形图像的方法,以下种种以下种种Edit copy figure(default:左上角背景色)Edit copy options(右下角背景色)file save/as 缺省为.figfile export 可选.bmp,.tif,.jpg等Alt+PrintScreen154双纵坐标函数双纵坐标函数plotyy它能把函数值具有不同量纲、不同数量级的两个它
16、能把函数值具有不同量纲、不同数量级的两个函数绘制在同函数绘制在同一坐标中。调用格式为:一坐标中。调用格式为:plotyy(x1,y1,x2,y2)plotyy(x1,y1,x2,y2)其中其中x1-y1对应一条曲线,对应一条曲线,x2-y2对应另一条曲线。对应另一条曲线。横坐标的标度相同,横坐标的标度相同,纵坐标有两个,纵坐标有两个,左纵坐标用于左纵坐标用于x1-y1数据对,数据对,右纵坐标用于右纵坐标用于x2-y2数据对。数据对。16例例5.4用不同标度在同一坐标内绘制曲线用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2x)及曲线及曲线y2=1.5e-0.1xsin(x)。x1=0
17、:pi/100:2*pi;%1x201x2=0:pi/100:3*pi;%1x301y1=exp(-0.5*x1).*sin(2*pi*x1);%1x201y2=1.5*exp(-0.1*x2).*sin(x2);%1x301plotyy(x1,y1,x2,y2);p p8 87 7.m m175.1.2 5.1.2 绘制图形的辅助操作绘制图形的辅助操作1.图形标注图形标注有关图形标注函数的调用格式为:有关图形标注函数的调用格式为:title(图形名称图形名称)xlabel(x轴说明轴说明)ylabel(y轴说明轴说明)text(x,y,图形说明图形说明)legend(图例图例1,图例图例2,
18、)182.坐标控制坐标控制函数的调用格式为:函数的调用格式为:axis(xminaxis(xmin xmaxxmax yminymin ymaxymax zminzmin zmaxzmax)axis函数功能丰富,常用的用法还有:函数功能丰富,常用的用法还有:axisequal纵、横坐标轴采用等长刻度纵、横坐标轴采用等长刻度axissquare产生正方形坐标系产生正方形坐标系(缺省为矩形缺省为矩形)axisauto使用缺省设置使用缺省设置axisoff取消坐标轴取消坐标轴axison显示坐标轴显示坐标轴gridon/off命令控制命令控制画或不画网格线画或不画网格线画或不画网格线画或不画网格线,
19、不带参数的,不带参数的grid命令在两种状态之间进行切换。命令在两种状态之间进行切换。boxon/off命令控制命令控制加或不加边框线加或不加边框线加或不加边框线加或不加边框线,不带参数的,不带参数的box命令在两种状态之间进行切换。命令在两种状态之间进行切换。19p p9 90 0.m mP P9 90 0_ _0 0.m m例例5.5绘制分段函数曲线并添加图形标注。绘制分段函数曲线并添加图形标注。x=linspace(0,10,100);y=;forx0=xifx0=8y=y,1;elseifx0=6y=y,5-x0/2;elseifx0=4y=y,2;elseifx0=0y=y,sqrt
20、(x0);endendplot(x,y)axis(01002.5)%设置坐标轴设置坐标轴title(分段函数曲线分段函数曲线);%加图形标题加图形标题xlabel(VariableX);%加加X X轴说明轴说明ylabel(VariableY);%加加Y Y轴说明轴说明text(2,1.3,y=x1/2);%在指定位置添加图形说明在指定位置添加图形说明text(4.5,1.9,y=2);text(7.3,1.5,y=5-x/2);text(8.5,0.9,y=1);203.图形保持图形保持一般情况下,绘图命令每执行一次就刷新当前图形窗口,图形窗口原一般情况下,绘图命令每执行一次就刷新当前图形窗
21、口,图形窗口原有图形将不复存在。若希望在已存在的图形上再继续添加新的图形,有图形将不复存在。若希望在已存在的图形上再继续添加新的图形,可使用可使用图形保持命令图形保持命令图形保持命令图形保持命令holdhold。holdon/offholdon/off命令控制是保持原有图形还是刷新原有图形命令控制是保持原有图形还是刷新原有图形命令控制是保持原有图形还是刷新原有图形命令控制是保持原有图形还是刷新原有图形,不带参数的,不带参数的hold命令在两种状态之间进行切换。命令在两种状态之间进行切换。21p p9 91 1.m m例例5.6用图形保持功能在同一坐标内绘制曲线用图形保持功能在同一坐标内绘制曲线
22、y=2e-0.5xsin(2x)及其包络线。及其包络线。x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y1,b:);%蓝色虚线蓝色虚线axis(0,2*pi,-2,2);%设置坐标设置坐标holdon;%设置图形保持状态设置图形保持状态plot(x,y2,r);%红色实线红色实线legend(包络线包络线,包络线包络线,曲线曲线y);%加图例加图例holdoff;%关闭图形保持关闭图形保持grid%网格线控制网格线控制224.图形窗口的分割图形窗口的分割subplot函数的调用格式为:函
23、数的调用格式为:subplot(m,n,p)subplot(m,n,p)分割后的图形窗口由若干个绘图区组成分割后的图形窗口由若干个绘图区组成分割后的图形窗口由若干个绘图区组成分割后的图形窗口由若干个绘图区组成-子图子图子图子图P P是按行优先编号的是按行优先编号的是按行优先编号的是按行优先编号的23p p9 92 2.m mepseps是是是是MATLABMATLAB中特殊的数,中特殊的数,中特殊的数,中特殊的数,代替零元素,代替零元素,代替零元素,代替零元素,epseps=2.2e-16=2.2e-16,在避免被在避免被在避免被在避免被0 0除时很有用除时很有用除时很有用除时很有用 例例5.
24、7在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);plot(x,y);title(sin(x);axis(0,2*pi,-1,1);subplot(2,2,2);plot(x,z);title(cos(x);axis(0,2*pi,1,1);subplot(2,2,3);plot(x,t);title(tangent(
25、x);axis(0,2*pi,-40,40);subplot(2,2,4);plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40);24对图形窗口灵活分割。请看下面的程序。对图形窗口灵活分割。请看下面的程序。x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1);%选择选择2 22 2个区中的个区中的1 1号区号区stairs(x,y);title(sin(x)-1);axis(0,2*pi,-1,1);
26、subplot(2,1,2);%选择选择2 21 1个区中的个区中的2 2号区号区stem(x,y);title(sin(x)-2);axis(0,2*pi,-1,1);subplot(4,4,3);%选择选择4 44 4个区中的个区中的3 3号区号区plot(x,y);title(sin(x);axis(0,2*pi,-1,1);subplot(4,4,4);%选择选择4 44 4个区中的个区中的4 4号区号区plot(x,z);title(cos(x);axis(0,2*pi,-1,1);subplot(4,4,7);%选择选择4 44 4个区中的个区中的7 7号区号区plot(x,t);
27、title(tangent(x);axis(0,2*pi,-40,40);subplot(4,4,8);%选择选择4 44 4个区中的个区中的8 8号区号区plot(x,ct);title(cotangent(x);axis(0,2*pi,-40,40);25p p9 92 29 93 3.m m265.1.3 5.1.3 绘制二维图形的其他函数绘制二维图形的其他函数1.其他形式的线性直角坐标图其他形式的线性直角坐标图在线性直角坐标系中,其他形式的图形有在线性直角坐标系中,其他形式的图形有条形图条形图条形图条形图、阶梯阶梯阶梯阶梯图图图图、杆图杆图杆图杆图和和填充图填充图填充图填充图等,所采用
28、的函数分别是:等,所采用的函数分别是:bar(x,y,选项选项)stairs(x,y,选项选项)stem(x,y,选项选项)fill(x1,y1,选项选项1,x2,y2,选项选项2,)27例例5.8分别以条形图、填充图、阶梯图和杆图形式绘制曲线分别以条形图、填充图、阶梯图和杆图形式绘制曲线y=2e-0.5x。x=0:0.35:7;y=2*exp(-0.5*x);subplot(2,2,1);bar(x,y,g);title(bar(x,y,g);axis(0,7,0,2);subplot(2,2,2);fill(x,y,r);title(fill(x,y,r);axis(0,7,0,2);su
29、bplot(2,2,3);stairs(x,y,b);title(stairs(x,y,b);axis(0,7,0,2);subplot(2,2,4);stem(x,y,k);title(stem(x,y,k);axis(0,7,0,2);p p9 94 4.m m282极坐标图极坐标图polar函数用来绘制极坐标图,其调用格式为:函数用来绘制极坐标图,其调用格式为:polar(theta,rhopolar(theta,rho,选项选项选项选项)其中其中theta为极坐标为极坐标极角极角,rho为极坐标为极坐标矢径矢径,选项的内容,选项的内容与与plotplot函数相似。函数相似。29例例5.
30、9绘制绘制=sin(2)cos(2)的极坐标图。的极坐标图。theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho,r);p p9 95 5.m m303对数坐标图形对数坐标图形MATLAB提供了绘制对数和半对数坐标曲线的函数,提供了绘制对数和半对数坐标曲线的函数,调用格式为:调用格式为:semilogx(x1,y1,semilogx(x1,y1,选项选项选项选项1,x2,y2,1,x2,y2,选项选项选项选项2,)2,)semilogy(x1,y1,semilogy(x1,y1,选项选项选项选项1,x2,y2,1,x2
31、,y2,选项选项选项选项2,)2,)loglog(x1,y1,loglog(x1,y1,选项选项选项选项1,x2,y2,1,x2,y2,选项选项选项选项2,)2,)31例例5.10绘制绘制y=10 x2的对数坐标图并与直角线性坐标图进行比较。的对数坐标图并与直角线性坐标图进行比较。x=0:0.1:10;y=10*x.*x;subplot(2,2,1);plot(x,y);title(plot(x,y);gridon;%直角线性坐标直角线性坐标subplot(2,2,2);semilogx(x,y);title(semilogx(x,y);gridon;%半对数坐标半对数坐标subplot(2,
32、2,3);semilogy(x,y);title(semilogy(x,y);gridon;%半对数坐标半对数坐标subplot(2,2,4);loglog(x,y);title(loglog(x,y);gridon;%全对数坐标全对数坐标32linspace函数产生函数产生线性坐标线性坐标向量向量logspace函数产生以函数产生以对数对数等间距分布的等间距分布的坐标坐标向量向量logspace(a,b,nlogspace(a,b,n)其中其中a和和b分别是第一个和最后一个元素,分别是第一个和最后一个元素,n是元素总数是元素总数当省略当省略n n时:时:linspace默认产生默认产生100
33、100个元素个元素 logspace默认产生默认产生5050个元素个元素334.对函数自适应采样的绘图函数对函数自适应采样的绘图函数fplot函数的调用格式为:函数的调用格式为:fplot(fname,lims,tolfplot(fname,lims,tol,选项选项选项选项)fnamefname:函数名函数名函数名函数名limslims:x x,y y的取值范围的取值范围的取值范围的取值范围toltol:相对允许误差,默认值为相对允许误差,默认值为相对允许误差,默认值为相对允许误差,默认值为2e-32e-3与直角坐标下的作比较与直角坐标下的作比较与直角坐标下的作比较与直角坐标下的作比较34p
34、 p0 09 96 6.m m与与直直角角坐坐标标下下的的作作比比较较例例5.11用用fplot函数绘制函数绘制f(x)=cos(tan(x)的曲线。的曲线。fplot(cos(tan(pi*x),-0.4,1.4,1e-4)355.其他形式的图形其他形式的图形MATLAB提供的绘图函数还有很多,例如,用来表示提供的绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图各元素占总和的百分比的饼图、复数的相量图复数的相量图等等。等等。36例例5.12绘制图形:绘制图形:(1)某次考试优秀、良好、中等、及格、不及格的人数分别为:某次考试优秀、良好、中等、及格、不及格的人数分别为:7,17,23
35、,19,5,试用饼图作成绩统计分析。,试用饼图作成绩统计分析。(2)绘制复数的相量图:绘制复数的相量图:3+2i、4.5-i和和-1.5+5i。subplot(1,2,1);pie(7,17,23,19,5);title(饼图饼图);legend(优秀优秀,良好良好,中等中等,及格及格,不及格不及格);subplot(1,2,2);compass(3+2i,4.5-i,-1.5+5i);title(相量图相量图);375.2三维图形三维图形5.2.1 5.2.1 绘制三维曲线的基本函数绘制三维曲线的基本函数plot3函数与函数与plot函数用法十分相似,其调用格式为:函数用法十分相似,其调用格
36、式为:plot3(x1,y1,z1,plot3(x1,y1,z1,选项选项选项选项1,x2,y2,z2,1,x2,y2,z2,选项选项选项选项2,2,xn,yn,znxn,yn,zn,选项选项选项选项n)n)38例例5.13绘制空间曲线。绘制空间曲线。t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(2)*sin(t);z=-4*sqrt(2)*sin(t);plot3(x,y,z,p);%p是五角星符是五角星符title(Linein3-DSpace);text(0,0,0,origin);%text annotation注解注解xlabel(X),ylabel(Y),z
37、label(Z);grid;395.2.2 5.2.2 三维曲面三维曲面1平面网格坐标矩阵的生成平面网格坐标矩阵的生成(1)利用矩阵运算生成。利用矩阵运算生成。x=a:dx:b;y=(c:dy:d);X=ones(size(y)*x;Y=y*ones(size(x);(2)利用利用meshgrid函数生成。函数生成。x=a:dx:b;y=c:dy:d;X,Y=meshgrid(x,y);40例例5.14已知已知6x30,15y36,求不定方程求不定方程2x+5y=126的的整数解。整数解。x=7:29;y=16:35;x,y=meshgrid(x,y);%在在5,2914,35区域生成网格坐标
38、区域生成网格坐标z=2*x+5*y;k=find(z=126);%找出解的位置找出解的位置x(k),y(k)%输出对应位置的输出对应位置的x,y即方程的解即方程的解ans=8131823ans=22201816则方程共有四组解则方程共有四组解(8,22)、()、(13,20)、()、(18,18)、()、(23,16)p p1 10 00 0.m m412.绘制三维曲面的函数绘制三维曲面的函数surf函数和函数和mesh函数的调用格式为:函数的调用格式为:mesh(x,y,z,c)mesh(x,y,z,c)surf(x,y,z,c)surf(x,y,z,c)42例例5.15用三维曲面图表现函数
39、用三维曲面图表现函数z=sin(y)cos(x)。程序程序程序程序1 1:网格图:网格图:网格图:网格图(mesh)(mesh)程序程序程序程序2 2:曲面图:曲面图:曲面图:曲面图(surf)(surf)程序程序程序程序3 3:曲面图:曲面图:曲面图:曲面图(plot3)(plot3)43例例5.16绘制两个直径相等的圆管的相交图形。绘制两个直径相等的圆管的相交图形。%两个等直径圆管的交线两个等直径圆管的交线m=30;z=1.2*(0:m)/m;r=ones(size(z);theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta);%生成第一个圆管
40、的坐标矩阵生成第一个圆管的坐标矩阵z1=z*ones(1,m+1);x=(-m:2:m)/m;x2=x*ones(1,m+1);y2=r*cos(theta);%生成第二个圆管的坐标矩阵生成第二个圆管的坐标矩阵z2=r*sin(theta);surf(x1,y1,z1);%绘制竖立的圆管绘制竖立的圆管axisequal,axisoffholdonsurf(x2,y2,z2);%绘制平放的圆管绘制平放的圆管axisequal,axisofftitle(两个等直径圆管的交线两个等直径圆管的交线);holdoff44例例5.17分析由函数分析由函数z=x2-2y2构成的曲面形状及与平面构成的曲面形状
41、及与平面z=a的交线。的交线。(三维曲面和曲面的交线如下图)(三维曲面和曲面的交线如下图)(三维曲面和曲面的交线如下图)(三维曲面和曲面的交线如下图)x,y=meshgrid(-10:0.2:10);z1=(x.2-2*y.2)+eps;%第第1个曲面个曲面a=input(a=?);z2=a*ones(size(x);%第第2个曲面个曲面subplot(1,2,1);mesh(x,y,z1);holdon;mesh(x,y,z2);%分别画出两个曲面分别画出两个曲面v=-10,10,-10,10,-100,100;axis(v);grid;%第第1子图的坐标设置子图的坐标设置holdoff;r
42、0=abs(z1-z2)0.5);x(i)=NaN;plot(x,y);58例例5.24绘制两个球面,其中一个球在另一个球里绘制两个球面,其中一个球在另一个球里面,将外面的球裁掉一部分,使得能看见面,将外面的球裁掉一部分,使得能看见里面的球。里面的球。x,y,z=sphere(20);%生成外面的大球生成外面的大球z1=z;z1(:,1:4)=NaN;%将大球裁掉一部分将大球裁掉一部分c1=ones(size(z1);surf(3*x,3*y,3*z1,c1);%生成里面的小球生成里面的小球holdonz2=z;c2=2*ones(size(z2);c2(:,1:4)=3*ones(size(
43、c2(:,1:4);surf(1.5*x,1.5*y,1.5*z2,c2);colormap(0,1,0;0.5,0,0;1,0,0);gridonholdoff59z1=Columns 1 through 7 NaN NaN NaN NaN -1.0000 -1.0000 -1.0000 NaN NaN NaN NaN -0.9877 -0.9877 -0.9877 NaN NaN NaN NaN -0.9511 -0.9511 -0.9511 NaN NaN NaN NaN -0.8910 -0.8910 -0.8910 NaN NaN NaN NaN -0.8090 -0.8090 -0
44、.8090 NaN NaN NaN NaN -0.7071 -0.7071 -0.7071 NaN NaN NaN NaN -0.5878 -0.5878 -0.5878 NaN NaN NaN NaN -0.4540 -0.4540 -0.4540 NaN NaN NaN NaN -0.3090 -0.3090 -0.3090 NaN NaN NaN NaN -0.1564 -0.1564 -0.1564 NaN NaN NaN NaN 0 0 0 NaN NaN NaN NaN 0.1564 0.1564 0.1564 NaN NaN NaN NaN 0.3090 0.3090 0.309
45、0 NaN NaN NaN NaN 0.4540 0.4540 0.4540 NaN NaN NaN NaN 0.5878 0.5878 0.5878 NaN NaN NaN NaN 0.7071 0.7071 0.7071 NaN NaN NaN NaN 0.8090 0.8090 0.8090 NaN NaN NaN NaN 0.8910 0.8910 0.8910 NaN NaN NaN NaN 0.9511 0.9511 0.9511 NaN NaN NaN NaN 0.9877 0.9877 0.9877 NaN NaN NaN NaN 1.0000 1.0000 1.0000 60
46、5.4隐函数绘图隐函数绘图MATLAB提供了一个提供了一个ezplotezplot函数绘制隐函数图形函数绘制隐函数图形(显式函数用显式函数用plot绘制图形绘制图形)下面介绍其用法下面介绍其用法(1)对于函数对于函数f=f(x),ezplot函数的调用格式为:函数的调用格式为:ezplot(fezplot(f):在默认区间在默认区间在默认区间在默认区间-2x2-2x2绘制绘制绘制绘制f=f(x)f=f(x)的图形。的图形。的图形。的图形。ezplot(fezplot(f,a,b),a,b):在区间在区间在区间在区间axbaxb绘制绘制绘制绘制f=f(x)f=f(x)的图形。的图形。的图形。的图
47、形。61(2)对于隐函数对于隐函数f=f(x,y),ezplot函数的调用格式为:函数的调用格式为:ezplot(fezplot(f):在默认区间在默认区间在默认区间在默认区间-2x2-2x2和和和和-2y2-2y2绘制绘制绘制绘制f(x,y)=0f(x,y)=0的图形。的图形。的图形。的图形。ezplot(fezplot(f,xmin,xmax,ymin,ymaxxmin,xmax,ymin,ymax):在区间在区间在区间在区间xminxminxxxmaxxmax和和和和yminyminyyymaxymax绘制绘制绘制绘制f(x,y)=0f(x,y)=0的图形。的图形。的图形。的图形。ezp
48、lot(fezplot(f,a,b),a,b):在区间在区间在区间在区间axbaxb和和和和aybayb绘制绘制绘制绘制f(x,y)=0f(x,y)=0的图形。的图形。的图形。的图形。62(3)对于参数方程对于参数方程x=x(t)和和y=y(t),ezplot函数的调用格式为:函数的调用格式为:ezplot(x,yezplot(x,y):在默认区间在默认区间在默认区间在默认区间0t20t2绘制绘制绘制绘制x=x(t)x=x(t)和和和和y=y(t)y=y(t)的图形。的图形。的图形。的图形。ezplot(x,yezplot(x,y,tmin,tmaxtmin,tmax):在区间在区间在区间在区
49、间tmintmintttmaxtmax绘制绘制绘制绘制x=x(t)x=x(t)和和和和y=y(t)y=y(t)的图形。的图形。的图形。的图形。63例例5.25隐函数绘图应用举例。隐函数绘图应用举例。subplot(2,2,1);ezplot(x2+y2-9);axisequalsubplot(2,2,2);ezplot(x3+y3-5*x*y+1/5)subplot(2,2,3);ezplot(cos(tan(pi*x),0,1)subplot(2,2,4);ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi)64其它隐函数还有其它隐函数还有ezpolarezpol
50、ar、ezcontourfezcontourf、ezplot3ezplot3、ezmeshezmesh、ezmeshcezmeshc、ezmeshcezmeshc、ezsurfezsurf、ezsurfcezsurfc例例例例:ezsurf(exp(-sezsurf(exp(-s)*)*cos(t),exp(-scos(t),exp(-s)*sin(t),t,0,8,0,5*pi)*sin(t),t,0,8,0,5*pi)655.5低层绘图操作低层绘图操作5.5.1 5.5.1 图形对象及其句柄图形对象及其句柄1.图形对象图形对象MATLAB把构成图形的各个基本要素称为把构成图形的各个基本要素