第四章 Matlab图形功能_第1页
第四章 Matlab图形功能_第2页
第四章 Matlab图形功能_第3页
第四章 Matlab图形功能_第4页
第四章 Matlab图形功能_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1 1页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2 2页页湖南长沙湖南长沙湖南长沙湖南长沙FileNewFigureMatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第3 3页页湖南长沙湖南长沙湖南长沙湖南长沙图形窗口的图形窗口的,等于,等于figure(n)命令中的命令中的 值值MatlabMatlab程序设计及应用程序设计及应用55132015513201第

2、四章第四章 第第4 4页页湖南长沙湖南长沙湖南长沙湖南长沙Example: 以向量以向量x=0:0.1:1为横坐标,为横坐标, y=2.3,4.3,2.5,6,4.9,1.5,1,4.6,5,6.7,0为纵坐标为纵坐标绘制绘制x-y的图形。的图形。 plot函数最基本的调用格式:函数最基本的调用格式: plot(x, y) plot(x)其中,其中, x和和y为为长度相同长度相同的向量,分别用于存储的向量,分别用于存储x坐标和坐标和y坐标数据。坐标数据。知识点知识点1:1:x=0:0.1:1;y=2.3,4.3,2.5,6,4.9,1.5,1,4.6,5,6.7,0;plot(x,y)解决方案

3、:解决方案:MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5 5页页湖南长沙湖南长沙湖南长沙湖南长沙l自动打开一个图自动打开一个图形窗口形窗口Figure;l缺省状态下用缺省状态下用直直线连接相邻两数线连接相邻两数据点据点绘制图形;绘制图形;l根据图形坐标大小根据图形坐标大小自动缩放坐标轴自动缩放坐标轴,将将数据标尺及单位数据标尺及单位标注自动加到两个标注自动加到两个坐标轴上坐标轴上。l绘图基本素材是绘图基本素材是数数据点的横纵坐标据点的横纵坐标;MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第

4、第6 6页页湖南长沙湖南长沙湖南长沙湖南长沙plot(x) 当当x是实向量是实向量时,则以时,则以该向量元素的下标为横坐该向量元素的下标为横坐标标,元素值为纵坐标元素值为纵坐标画出一条曲线,这实际上是绘画出一条曲线,这实际上是绘制折线图。制折线图。 x=1,2,3,5,7,4,5,2; plot(x)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7 7页页湖南长沙湖南长沙湖南长沙湖南长沙 完成下图所示图形的绘制,要求:完成下图所示图形的绘制,要求:1)正弦曲线用绿)正弦曲线用绿色虚线绘制,用红色填充;色虚线绘制,用红色填充;2)余弦曲线用蓝色

5、点线绘)余弦曲线用蓝色点线绘制,并用圆圈标记数据点;制,并用圆圈标记数据点;3)绘图范围:)绘图范围:0 x3,调,调整坐标轴刻度,使之恰好显示整幅图形。整坐标轴刻度,使之恰好显示整幅图形。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第8 8页页湖南长沙湖南长沙湖南长沙湖南长沙思路分析:思路分析:l第一步:按照要求绘制正弦、余弦曲线。第一步:按照要求绘制正弦、余弦曲线。需解决两个问题:需解决两个问题:1、如何设置曲线的线型、颜色和数据点标记?、如何设置曲线的线型、颜色和数据点标记?2、如何在同一个图形窗口绘制两条曲线?、如何在同一个图形窗口绘

6、制两条曲线? 如何设置曲线的线型、颜色和数据点标记?如何设置曲线的线型、颜色和数据点标记?使用使用plot函数:函数: plot(x, y, s)其中,字符串其中,字符串s设定曲线颜色、线型和标记符号,从下面的表格中取设定曲线颜色、线型和标记符号,从下面的表格中取值,可组合使用。值,可组合使用。知识点知识点2: :MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第9 9页页湖南长沙湖南长沙湖南长沙湖南长沙线型选项:线型选项:符符号号线型线型-实线实线-虚线虚线:点线点线-.点划线点划线颜色选项:颜色选项:字字母母颜色颜色b蓝色蓝色g绿色绿色r红色

7、红色c青色青色m洋红洋红y黄色黄色w白色白色k黑色黑色符号符号数据点标记类型数据点标记类型.点点o(字母)(字母)圆圈圆圈x (字母)(字母)叉叉+加号加号*星号星号s正方形正方形d菱形菱形v下三角形下三角形上三角形上三角形右三角形右三角形p五角星形五角星形h六角星形六角星形数据点标记符号选项:数据点标记符号选项:MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1010页页湖南长沙湖南长沙湖南长沙湖南长沙 如何在一个图形窗口绘制多条曲线?如何在一个图形窗口绘制多条曲线? plot函数的函数的输入参数是矩阵形式:输入参数是矩阵形式: plot(x

8、, y, s)l当当x、y均为均为MN的矩阵的矩阵时,时,plot以以y的每一列为纵坐标的每一列为纵坐标,以以x对对应列的元素为横坐标应列的元素为横坐标绘图,在一个图形窗口同时绘制多条曲线。绘图,在一个图形窗口同时绘制多条曲线。l当当x为向量为向量,y为为MN的矩阵的矩阵时,时,plot以以y的每一列为纵坐标的每一列为纵坐标,以以x为横坐标为横坐标绘图,在一个图形窗口同时绘制多条曲线,这些曲线绘图,在一个图形窗口同时绘制多条曲线,这些曲线具有相同的横坐标。具有相同的横坐标。1.当缺省参数当缺省参数x,只给定只给定y值值时:若时:若y为为实矩阵实矩阵,则以,则以y的每一列为纵的每一列为纵坐标坐标

9、,以,以每列元素的行下标为横坐标每列元素的行下标为横坐标绘图;若绘图;若y为复矩阵,则以为复矩阵,则以y的每列元素的实部、虚部为横、纵坐标绘图。的每列元素的实部、虚部为横、纵坐标绘图。 知识点知识点3: :MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1111页页湖南长沙湖南长沙湖南长沙湖南长沙当当x、y均为均为MN的矩阵的矩阵时,时,plot以以y的每一列为纵坐的每一列为纵坐标标,以,以x对应列的元素为横坐标对应列的元素为横坐标绘图,在一个图形窗绘图,在一个图形窗口同时绘制多条曲线。口同时绘制多条曲线。t=linspace(0,2*pi,1

10、00);x=t;t;y=sin(t);cos(t);plot(x,y)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1212页页湖南长沙湖南长沙湖南长沙湖南长沙当当x为向量为向量,y为为MN的矩阵的矩阵时,时,plot以以y的每一列的每一列为纵坐标为纵坐标,以,以x为横坐标为横坐标绘图,在一个图形窗口同绘图,在一个图形窗口同时绘制多条曲线,这些曲线具有相同的横坐标。时绘制多条曲线,这些曲线具有相同的横坐标。 x=linspace(0,2*pi,100); y=sin(x);cos(x); plot(x,y)MatlabMatlab程序设计及应

11、用程序设计及应用55132015513201第四章第四章 第第1313页页湖南长沙湖南长沙湖南长沙湖南长沙只给定只给定y值值时:若时:若y为实矩阵为实矩阵,则以,则以y的每一列为纵的每一列为纵坐标坐标,以,以每列元素的行下标为横坐标每列元素的行下标为横坐标绘图绘图 y=0 1 2 3 2 1 0;0 1 3 5 3 1 0; plot(y)y y= = 0 0 0 0 1 1 1 1 2 3 2 3 3 5 3 5 2 3 2 3 1 1 1 1 0 0 0 0 MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1414页页湖南长沙湖南长沙湖南长

12、沙湖南长沙 如何在一个图形窗口绘制多条曲线?如何在一个图形窗口绘制多条曲线? 使用使用plot函数的如下形式:函数的如下形式: plot(x1, y1, s1, x2, y2, s2, )l当当参数均为向量参数均为向量时,时,x1和和y1、x2和和y2、xn和和yn组成组成向量对向量对,在一个图形窗口内,以每一向量对为横、纵坐标绘制一条曲线,在一个图形窗口内,以每一向量对为横、纵坐标绘制一条曲线,可同时绘制多条曲线;可同时绘制多条曲线;2.当输入参数有当输入参数有矩阵形式矩阵形式时,时,配对的配对的x、y按对应列元素为横、纵坐按对应列元素为横、纵坐标绘图,标绘图,曲线条数等于矩阵的列数曲线条数

13、等于矩阵的列数。 知识点知识点3: :MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1515页页湖南长沙湖南长沙湖南长沙湖南长沙x=linspace(0,2*pi,100);plot(x,sin(x),x,2*sin(x), x,3*sin(x)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1616页页湖南长沙湖南长沙湖南长沙湖南长沙当当输入参数有矩阵形式输入参数有矩阵形式时,配对的时,配对的x、y按对应列按对应列元素为横、纵坐标元素为横、纵坐标分别绘制曲线,分别绘制曲线,曲线条数相当曲线条

14、数相当于矩阵的列数于矩阵的列数。x1=linspace(0,2*pi,100);y1=sin(x1);y2=2*sin(x1);y3=3*sin(x1);x=x1;x1;x1;y=y1;y2;y3;plot(x,y,x1,cos(x1)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1717页页湖南长沙湖南长沙湖南长沙湖南长沙 如何在一个图形窗口绘制多条曲线?如何在一个图形窗口绘制多条曲线? 使用使用plot(x, y, s)+hold(图形保持)命令(图形保持)命令lhold命令使用方法:命令使用方法: hold on:保持原有图形,后续绘图

15、函数在图形窗口原有图:保持原有图形,后续绘图函数在图形窗口原有图形的基础上绘图;形的基础上绘图; hold off:刷新原有图形,后续:刷新原有图形,后续绘图函数删除图形窗口原有绘图函数删除图形窗口原有图形后绘制新图形;图形后绘制新图形; hold:在上述两种状态之间切换。:在上述两种状态之间切换。lplot(x, y, s)+hold使用方法:使用方法: plot(x1, y1, s1); hold on; plot(x2, y2, s2);知识点知识点3: :MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1818页页湖南长沙湖南长沙湖南长

16、沙湖南长沙%生成曲线的横纵坐标:生成曲线的横纵坐标:x=0:0.1:3*pi;y1=sin(x);y2=cos(x);%按要求绘制曲线按要求绘制曲线plot(x,y1,-g,x,y2,:bo);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第1919页页湖南长沙湖南长沙湖南长沙湖南长沙l第二步:用红色填充正弦曲线。第二步:用红色填充正弦曲线。 如何绘制二位填充图形?如何绘制二位填充图形?使用使用fill和和patch函数:函数: fill(x, y, colorspec)创建一个由向量创建一个由向量x和和y指定顶点坐标并用指定顶点坐标并用col

17、orspec指定的颜色填充的指定的颜色填充的多边形。多边形。知识点知识点4:4:x=0:0.1:3*pi;y1=sin(x);y2=cos(x);plot(x,y1,-g,x,y2,:bo);%用红色填充正弦曲线用红色填充正弦曲线fill(x,y1,r);第二步初步解决方案:第二步初步解决方案:MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2020页页湖南长沙湖南长沙湖南长沙湖南长沙以前绘制的正弦、余弦曲线到哪里去了?以前绘制的正弦、余弦曲线到哪里去了?MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四

18、章 第第2121页页湖南长沙湖南长沙湖南长沙湖南长沙 fill和和plot一样,是一个绘图函数。在默认情况下,一样,是一个绘图函数。在默认情况下,绘图函数绘图函数每执行一次就刷新当前图形窗口,窗口中原有图形不复存在。每执行一次就刷新当前图形窗口,窗口中原有图形不复存在。若若希望在已存在的图形上继续添加图形,必须在调用绘图函数前使希望在已存在的图形上继续添加图形,必须在调用绘图函数前使用用hold。 hold on:保持原有图形;:保持原有图形; hold off:刷新原有图形;:刷新原有图形; hold:在上述两种状态间切换。:在上述两种状态间切换。Note:x=0:0.1:3*pi;y1=s

19、in(x);y2=cos(x);plot(x,y1,-g,x,y2,:bo);%保持原有图形保持原有图形hold on%用红色填充正弦曲线用红色填充正弦曲线fill(x,y1,r);第二步最终解决方案:第二步最终解决方案:x=0:0.1:3*pi;y1=sin(x);y2=cos(x);plot(x,y1,-g,x,y2,:bo);%用红色填充正弦曲线用红色填充正弦曲线patch(x,y1,r);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2222页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用551

20、32015513201第四章第四章 第第2323页页湖南长沙湖南长沙湖南长沙湖南长沙 如何控制坐标轴?如何控制坐标轴?使用使用axis函数:函数: axis(xmin xmax ymin ymax)设定坐标轴的刻度范围,其中设定坐标轴的刻度范围,其中xmin,xmax,ymin,ymax分别分别为横、纵坐标轴刻度的最大值和最小值。为横、纵坐标轴刻度的最大值和最小值。 axis(auto) 或或 axis auto将坐标轴的设置返回到缺省状态。将坐标轴的设置返回到缺省状态。 axis(equal) 或或 axis equal将横、纵坐标轴设置成相等的坐标增量。将横、纵坐标轴设置成相等的坐标增量。

21、知识点知识点5:5:l第三步:调整坐标轴的范围,使图形恰好完全显示。第三步:调整坐标轴的范围,使图形恰好完全显示。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2424页页湖南长沙湖南长沙湖南长沙湖南长沙 如何控制坐标轴?如何控制坐标轴?使用使用axis函数:函数: axis(square) 或或 axis square将坐标系设置成正方形(缺省为矩形)将坐标系设置成正方形(缺省为矩形) axis on/off显示显示/关闭坐标轴。关闭坐标轴。知识点知识点5:5:axis(0,3*pi,min(min(y1),min(y2),max(max(

22、y1),max(y2);第三步解决方案:第三步解决方案:MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2525页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2626页页湖南长沙湖南长沙湖南长沙湖南长沙 figure函数用来函数用来实现多窗口绘图实现多窗口绘图。figure函数的调用格式为:函数的调用格式为:figure(n)t=0:pi/100:2*pi;y=sin(t);y1=sin(t+0.25);y2=sin(t+0.5);plot(t,y)figu

23、re(2)plot(t,y1)figure(3)plot(t,y2)创建图形窗口,创建图形窗口,n为窗口的序号。为窗口的序号。自动出现第一个窗口自动出现第一个窗口 在第二个窗口绘图在第二个窗口绘图创建第二个窗口创建第二个窗口创建第三个窗口创建第三个窗口 在第三个窗口绘图在第三个窗口绘图知识点知识点6:6: 利用利用figurefigure函数实现多窗口绘图函数实现多窗口绘图MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第2727页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第

24、四章第四章 第第2828页页湖南长沙湖南长沙湖南长沙湖南长沙x, y = fplot(fname, limits, ) 只返回绘图点的值给只返回绘图点的值给x,y,而不绘图,可随后用而不绘图,可随后用plot(x,y)来绘图。来绘图。fname是一个字符串,它必须是:是一个字符串,它必须是:1)M函数文件名;函数文件名;2)含有变量)含有变量x的字符串,的字符串,该字符串的内容为一个可执行的语该字符串的内容为一个可执行的语句,如句,如sin(x),sin(x),cos(x)等。等。3)函数句柄。函数句柄。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四

25、章 第第2929页页湖南长沙湖南长沙湖南长沙湖南长沙fplot(sin(x)./x,-20,20,2e-3,ro) fplot绘出的绘出的f(x)的图形中的图形中自变量取自变量取值是不均匀值是不均匀的!在的!在函数值变化较大的函数值变化较大的地方地方x的取值较密,的取值较密,能充分反映函数的能充分反映函数的实际变化规律。实际变化规律。Note:MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第3030页页湖南长沙湖南长沙湖南长沙湖南长沙function Y = myfun(x)Y(:,1) = 200*sin(x(:)./x(:);Y(:,2)

26、= x(:).2;fplot(myfun,-20 20,o)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第3131页页湖南长沙湖南长沙湖南长沙湖南长沙在默认区间在默认区间-2x, y1,条与条之间将重合。条与条之间将重合。bar(x,y,1.2);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第3838页页湖南长沙湖南长沙湖南长沙湖南长沙4)bar(, grouped)产生组合的条形图。产生组合的条形图。5)bar(, stacked)产生堆叠的条形图。产生堆叠的条形图。6)bar(, lin

27、espec)指定条的颜色。指定条的颜色。x=1:12;y=-10 -6 5 10 20 25 30 24 22 19 10 6;-18 -14 -3 2 12 17 22 16 14 10 -2 -4;y=y;y必须转置为必须转置为12行行2列,它的行数须等于列,它的行数须等于x的长度的长度MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第3939页页湖南长沙湖南长沙湖南长沙湖南长沙subplot(2,1,1);bar(x,y,r,grouped);subplot(2,1,2);bar(x,y,stacked);groupedstackedMat

28、labMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4040页页湖南长沙湖南长沙湖南长沙湖南长沙x=0:pi/20:2*pi;y=sin(x);stairs(x,y)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4141页页湖南长沙湖南长沙湖南长沙湖南长沙h2=1 1;1 -1;h4=h2 h2;h2 -h2;h8=h4 h4;h4 -h4;t=1:8;for i=1:8 subplot(8,1,i); stairs(t,h8(i,:); axis off;endh8 =1 1 1 1 1 1 1 11

29、 -1 1 -1 1 -1 1 -11 1 -1 -1 1 1 -1 -11 -1 -1 1 1 -1 -1 11 1 1 1 -1 -1 -1 -11 -1 1 -1 -1 1 -1 11 1 -1 -1 -1 -1 1 11 -1 -1 1 -1 1 1 -1MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4242页页湖南长沙湖南长沙湖南长沙湖南长沙x=0:pi/20:2*pi;y=sin(x);stem(x,y,r)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4343页页湖南长沙湖南长

30、沙湖南长沙湖南长沙函数函数功能功能在直角坐标系中绘制直方图在直角坐标系中绘制直方图在极坐标系中绘制直方图在极坐标系中绘制直方图绘制区域填充图绘制区域填充图绘制误差棒图绘制误差棒图绘制复数向量图(罗盘图)绘制复数向量图(罗盘图)绘制复数向量投影图(羽毛图)绘制复数向量投影图(羽毛图)绘制彗星曲线图绘制彗星曲线图绘制向量场图绘制向量场图绘制饼形图绘制饼形图绘制离散点图绘制离散点图MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4444页页湖南长沙湖南长沙湖南长沙湖南长沙完成下图的绘制,具体说明及要求如下:完成下图的绘制,具体说明及要求如下:1)在一

31、个图形窗口中绘制)在一个图形窗口中绘制4幅子图;幅子图;2)第一个子图为一幅漂亮的三维)第一个子图为一幅漂亮的三维8字形曲线图,其图形曲字形曲线图,其图形曲线为:线为:tztytx2sinsin3)第二个子图为一幅带光照效果的古铜色三维表面图,)第二个子图为一幅带光照效果的古铜色三维表面图,其图形曲线为:其图形曲线为:z=peaks(x,y) (-3x, y3);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4545页页湖南长沙湖南长沙湖南长沙湖南长沙4)第三个子图为一幅三维网格面图,其图形曲线为:)第三个子图为一幅三维网格面图,其图形曲线为

32、:z=x2+y2 (-4x, y4),并用蓝色圆圈标出数据点在,并用蓝色圆圈标出数据点在x-y平平面上的投影点;面上的投影点;5)第四个子图为一幅三维单位球面图(圆心在坐标原点,)第四个子图为一幅三维单位球面图(圆心在坐标原点,半径为半径为1););6)所有图形的绘制要求与下图效果一样。)所有图形的绘制要求与下图效果一样。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4646页页湖南长沙湖南长沙湖南长沙湖南长沙tztytx2sinsinz=peaks(x,y) (-3x, y3);圆心在坐标原点,半径为圆心在坐标原点,半径为1MatlabMa

33、tlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4747页页湖南长沙湖南长沙湖南长沙湖南长沙l第一步:第一步:,将其分成上、下各两个共,将其分成上、下各两个共四个独立的绘图区域四个独立的绘图区域Q:如何分割图形窗口?:如何分割图形窗口?A:使用:使用,它将当前,它将当前图形窗口分割成若干个绘图区域,图形窗口分割成若干个绘图区域,每个区域代表一个独立的子图,每个区域代表一个独立的子图,有独立的坐标系。有独立的坐标系。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4848页页湖南长沙湖南长沙湖南长沙湖南长沙图形窗

34、口的分割和子图控制图形窗口的分割和子图控制上述语句的含义:将当前图上述语句的含义:将当前图形窗口分成形窗口分成个绘图区,个绘图区,即即,参数参数 指定当前绘图指定当前绘图,按,按排列排列 。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第4949页页湖南长沙湖南长沙湖南长沙湖南长沙x=0:pi/100:2*pi;subplot(2,2,1); plot(x,sin(x);subplot(2,2,2); plot(x,cos(x);subplot(2,2,3); plot(x,tan(x);subplot(2,2,4); plot(x,cosh(

35、x);1234可否将窗口分割为不对称的子窗口呢?可否将窗口分割为不对称的子窗口呢?MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5050页页湖南长沙湖南长沙湖南长沙湖南长沙subplot(2,2,1 3)subplot(2,2,2)subplot(2,2,4)subplot(2,2,1 3)subplot(2,2,2)subplot(2,2,4)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5151页页湖南长沙湖南长沙湖南长沙湖南长沙subplot(2,2,1)subplot(2,2,1)s

36、ubplot(2,1,2)subplot(2,1,2)subplot(4,4,3)subplot(4,4,3) subplot(4,4,4)subplot(4,4,4)subplot(4,4,7)subplot(4,4,7)subplot(4,4,8)subplot(4,4,8)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5252页页湖南长沙湖南长沙湖南长沙湖南长沙x=linspace(0,2x=linspace(0,2* *pi,60);pi,60);y=sin(x);y=sin(x);z=cos(x);z=cos(x);t=sin(x)

37、./(cos(x)+eps);t=sin(x)./(cos(x)+eps);ct=cos(x)./(sin(x)+eps);ct=cos(x)./(sin(x)+eps);subplot(2,2,1); subplot(2,2,1); %选择选择2 22 2个区中的个区中的1 1号区号区stairs(x,y);title(sin(x)-1);axis (0,2stairs(x,y);title(sin(x)-1);axis (0,2* *pi,-1,1);pi,-1,1);subplot(2,1,2); subplot(2,1,2); %选择选择2 21 1个区中的个区中的2 2号区号区ste

38、m(x,y);title(sin(x)-2);axis (0,2stem(x,y);title(sin(x)-2);axis (0,2* *pi,-1,1);pi,-1,1);subplot(4,4,3); subplot(4,4,3); %选择选择4 44 4个区中的个区中的3 3号区号区plot(x,y);title(sin(x);axis (0,2plot(x,y);title(sin(x);axis (0,2* *pi,-1,1);pi,-1,1);subplot(4,4,4); subplot(4,4,4); %选择选择4 44 4个区中的个区中的4 4号区号区plot(x,z);t

39、itle(cos(x);axis (0,2plot(x,z);title(cos(x);axis (0,2* *pi,-1,1);pi,-1,1);subplot(4,4,7); subplot(4,4,7); %选择选择4 44 4个区中的个区中的7 7号区号区plot(x,t);title(tangent(x);axis (0,2plot(x,t);title(tangent(x);axis (0,2* *pi,-40,40);pi,-40,40);subplot(4,4,8); subplot(4,4,8); %选择选择4 44 4个区中的个区中的8 8号区号区plot(x,ct);ti

40、tle(cotangent(x);axis (0,2plot(x,ct);title(cotangent(x);axis (0,2* *pi,-40,40);pi,-40,40);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5353页页湖南长沙湖南长沙湖南长沙湖南长沙%将图形窗口分割成将图形窗口分割成2*2的子窗口,的子窗口,%并将并将1号子窗口设为活动窗口,号子窗口设为活动窗口,%后续绘图操作都在该子窗口中进行后续绘图操作都在该子窗口中进行MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5

41、454页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5555页页湖南长沙湖南长沙湖南长沙湖南长沙l第二步:在第一个子窗口第二步:在第一个子窗口Q1:如何绘制三维线图?:如何绘制三维线图?A1:使用:使用,它实际是,它实际是plot函数在三维空间上的扩展,函数在三维空间上的扩展,用来绘制三维曲线,与用来绘制三维曲线,与plot函数函数用法十分相似。用法十分相似。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5656页页湖南长沙湖南长沙湖南长沙湖南长沙绘制三维

42、曲线图绘制三维曲线图 x、y、z分别为第一到第三维数据,它们分别为第一到第三维数据,它们可以是向量可以是向量也可以是矩阵也可以是矩阵,但必须,但必须维数和大小相等维数和大小相等。 plot3实际是实际是plot函数在三维空间上的扩展,函数在三维空间上的扩展,二维图形的所二维图形的所有特性对三维图形都适用有特性对三维图形都适用 当当x、y、z是同维向量时是同维向量时,则,则x、y、z对应元素构成一对应元素构成一条三维曲线,条三维曲线,当当x、y、z是同维矩阵时是同维矩阵时,则以,则以x、y、z对应列元素绘制三维曲线,曲线条数等于矩阵列数对应列元素绘制三维曲线,曲线条数等于矩阵列数MatlabMa

43、tlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5757页页湖南长沙湖南长沙湖南长沙湖南长沙%为为plot3函数绘图准备数据点函数绘图准备数据点tztytx2sinsint=0:0.05:100; x=t;y=sin(t);z=sin(2*t);%使用使用plot3函数绘图函数绘图MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5858页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第5959页页湖南长沙湖南长沙湖南长沙湖南长沙

44、Q2:如何为图形添加标题和:如何为图形添加标题和坐标轴说明?坐标轴说明?A2:为图形:为图形使用使用,为,为使用使用、函数。函数。为图形添加标题为图形添加标题MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6060页页湖南长沙湖南长沙湖南长沙湖南长沙为坐标轴添加说明为坐标轴添加说明其中其中text是要添加的标注文本,是要添加的标注文本,property是是指该文本的属性,如字体名称、大小、粗细指该文本的属性,如字体名称、大小、粗细等,等,propertyvalue为相应的属性值。为相应的属性值。MatlabMatlab程序设计及应用程序设计及应

45、用55132015513201第四章第四章 第第6161页页湖南长沙湖南长沙湖南长沙湖南长沙t=0:0.1:10;y1=sin(t); y2=cos(t); plot(t,y1,r,t,y2,b*);xlabel(时间时间t,FontWeight,bold);ylabel(正弦、余弦曲线正弦、余弦曲线,FontWeight,bold);title(正弦和余弦曲线正弦和余弦曲线,FontWeight,bold);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6262页页湖南长沙湖南长沙湖南长沙湖南长沙%为三维曲线图添加标题为三维曲线图添加标题

46、title(三维曲线图三维曲线图,FontWeight,bold)%为三维曲线图的坐标轴添加说明为三维曲线图的坐标轴添加说明xlabel(x,FontWeight,bold);ylabel(y,FontWeight,bold);zlabel(z,FontWeight,bold);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6363页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6464页页湖南长沙湖南长沙湖南长沙湖南长沙l第三步:在第二个子窗口第三步:在第

47、二个子窗口Q1:如何绘制三维曲面图?:如何绘制三维曲面图?A1:分两步走:分两步走:第一步第一步;第二步第二步MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6565页页湖南长沙湖南长沙湖南长沙湖南长沙上述语句执行后,矩阵上述语句执行后,矩阵;矩阵;矩阵。如何产生三维绘图数据如何产生三维绘图数据生成平面网格坐标矩阵生成平面网格坐标矩阵meshgrid的用法:的用法: x=a:d1:b; y=c:d2:d; X,Y=meshgrid(x,y)MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6666

48、页页湖南长沙湖南长沙湖南长沙湖南长沙x=0:0.2:1;y=x;X,Y=meshgrid(x,y);X = 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000 0 0.2000 0.4000 0.6000 0.8000 1.0000Y = 0 0 0 0 0 0 0.2000 0.

49、2000 0.2000 0.2000 0.2000 0.2000 0.4000 0.4000 0.4000 0.4000 0.4000 0.4000 0.6000 0.6000 0.6000 0.6000 0.6000 0.6000 0.8000 0.8000 0.8000 0.8000 0.8000 0.8000 1.0000 1.0000 1.0000 1.0000 1.0000 1.0000位置:第三行第四列位置:第三行第四列坐标:坐标:(0.6,0.4):X和和Y相同位置上的元素相同位置上的元素是向量是向量x、y围成平围成平面区域中面区域中。X(3,4)Y(3,4)矩阵矩阵;矩阵矩阵。

50、MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6767页页湖南长沙湖南长沙湖南长沙湖南长沙如何产生三维绘图数据如何产生三维绘图数据根据函数关系由平面网格坐标矩阵根据函数关系由平面网格坐标矩阵X X、Y Y计算函数计算函数值矩阵值矩阵Z Z。绘制三维曲面的函数绘制三维曲面的函数 x、y是平面网格坐标矩阵,是平面网格坐标矩阵,z是网格点的是网格点的z坐标矩阵;坐标矩阵;c、s为可选参数,为可选参数,c指定在不同高度下的颜色范围(缺省指定在不同高度下的颜色范围(缺省时时c=z。MatlabMatlab程序设计及应用程序设计及应用5513201551

51、3201第四章第四章 第第6868页页湖南长沙湖南长沙湖南长沙湖南长沙Example:绘制绘制z=x2+y2的三维网格图形的三维网格图形(-5=x=5,y=x)。)。生成坐标生成坐标X, Y=meshgrid(x,y)Z=f(X, Y)根据函数关系由根据函数关系由x、y坐标矩阵求坐标矩阵求z坐标矩阵坐标矩阵Z。Z=X.2+Y.2z坐标矩阵坐标矩阵(mn)绘图函数绘图函数MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第6969页页湖南长沙湖南长沙湖南长沙湖南长沙用用mesh函数绘图。函数绘图。mesh(X,Y,Z)MatlabMatlab程序设计

52、及应用程序设计及应用55132015513201第四章第四章 第第7070页页湖南长沙湖南长沙湖南长沙湖南长沙%指定第二个子窗口为当前绘图窗口指定第二个子窗口为当前绘图窗口 z=peaks(x,y) (-3x, y3)subplot(2,2,2)%为绘制三维曲面准备数据点为绘制三维曲面准备数据点x=-3:0.1:3;y=x;%绘制三维曲面绘制三维曲面MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7171页页湖南长沙湖南长沙湖南长沙湖南长沙MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7272

53、页页湖南长沙湖南长沙湖南长沙湖南长沙%调整坐标系范围,使之与样例一致调整坐标系范围,使之与样例一致 axis(-3 3 -3 3 -8 8);%添加标题和坐标轴说明添加标题和坐标轴说明title(带光照效果的三维曲面图带光照效果的三维曲面图,FontWeight,bold)xlabel(x,FontWeight,bold);ylabel(y,FontWeight,bold);zlabel(z,FontWeight,bold);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7373页页湖南长沙湖南长沙湖南长沙湖南长沙1、颜色不是古铜色的;、颜色

54、不是古铜色的;2、表面有网格线,不平滑、表面有网格线,不平滑MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7474页页湖南长沙湖南长沙湖南长沙湖南长沙Q2:如何设置三维曲面图:如何设置三维曲面图的颜色?的颜色?A2:除除plot及其派生函数外,及其派生函数外,mesh、surf等函数均使用等函数均使用,使用函数,使用函数实现。实现。如何为三维曲面图着色如何为三维曲面图着色 m是是,它的每一行是它的每一行是RGB三元组,见教材中表三元组,见教材中表5-3、5-4(P110)。)。MatlabMatlab程序设计及应用程序设计及应用5513201

55、5513201第四章第四章 第第7575页页湖南长沙湖南长沙湖南长沙湖南长沙RGB值颜色字符RGB值颜色字符1 0 0红色r1 1 1白色w0 1 0绿色g0.5 0.5 0.5灰色0 0 1蓝色b0.67 0 1紫色0 1 1青色c1 0.5 0橙色1 0 1品红色m1 0.62 0.40铜色1 1 0黄色y0.49 1 0.83宝石蓝0 0 0黑色k3个元素分别表示红、蓝、绿的相对亮度RGB三元组MATLAB除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7676页页湖南长沙湖南长沙湖

56、南长沙湖南长沙 色图是m3的数值矩阵,它的每一行是RGB三元组。 色图矩阵可以人为地生成;也可以调用MATLAB提供的函数来定义色图矩阵。函数名含义copper纯铜色线性浓淡色autumn红、黄浓淡色bone蓝色调浓淡色pink淡粉红色图hot黑、红、黄、白浓淡色gray灰色调线性浓淡色MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7777页页湖南长沙湖南长沙湖南长沙湖南长沙%调用调用colormap函数为图形着色函数为图形着色 MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7878页页湖南

57、长沙湖南长沙湖南长沙湖南长沙Q3:如何去掉三维表面图如何去掉三维表面图的线条并对其颜色进行平滑的线条并对其颜色进行平滑处理?处理?A3:使用:使用函数:函数:缺省值,带有连接线:缺省值,带有连接线条的曲面。条的曲面。:去掉曲面各片连接处的:去掉曲面各片连接处的线条,平滑当前图形的颜色线条,平滑当前图形的颜色:去掉曲面各片连接处:去掉曲面各片连接处的线条,在各片之间使用颜色插值,的线条,在各片之间使用颜色插值,使得片与片之间以及片内部的颜色过使得片与片之间以及片内部的颜色过渡平滑。渡平滑。MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第7979页

58、页湖南长沙湖南长沙湖南长沙湖南长沙shading faceted将每个网格片用其高度对应的颜色进行着色,但网格线仍保留,其颜色是黑色。z=peaks(20);surf(z);shading faceted;z=peaks(20);surf(z);MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第8080页页湖南长沙湖南长沙湖南长沙湖南长沙shading flat将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色,从而使得图形表面显得更加光滑。z=peaks(20);colormap(pink);surf(z);shading flat;Ma

59、tlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第8181页页湖南长沙湖南长沙湖南长沙湖南长沙shading interp在网格片内采用颜色插值处理,得出的表面图显得最光滑z=peaks(20);colormap(bone);surf(z);shading interp;MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第8282页页湖南长沙湖南长沙湖南长沙湖南长沙z=peaks(20);colormap(copper);subplot(1,3,1);surf(z);subplot(1,3,2);surf

60、(z); shading flat;subplot(1,3,3);surf(z); shading interpMatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第8383页页湖南长沙湖南长沙湖南长沙湖南长沙表面无线条,但片与片之间的过渡较明显表面无线条,但片与片之间的过渡较明显最终效果最终效果MatlabMatlab程序设计及应用程序设计及应用55132015513201第四章第四章 第第8484页页湖南长沙湖南长沙湖南长沙湖南长沙%调用调用shading函数进行平滑函数进行平滑 MatlabMatlab程序设计及应用程序设计及应用5513201

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论