matlab第八讲教案_第1页
matlab第八讲教案_第2页
matlab第八讲教案_第3页
matlab第八讲教案_第4页
matlab第八讲教案_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、西南科技大学本科生课程备课教案计算机技术在安全工程中的应用 Matlab入门及应用授课教师:徐中慧班 级:专 业:安全技术及工程2 / 23第八章 绘图课型:新授课 教具:多媒体教学设备,matlab教学软件一、目标与要求掌握matlab中二维绘图、三维绘图、子图等相关图形绘制功能。二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab程序时能够熟练运用绘图的相关函数实现相应的功能。三、教学方法 本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。四、教学内容课后习题讲解(1)用switch/case,menu结构编写程序求解下列问题:提示用户输入入学时

2、间是一年、二年、三年还是四年,输入数据是字符串。根据输入数据决定期末考试的时间。其中,一年级周一考试,二年级周二考试,三年级周三考试,四年级周四考试。Input=menu('Enter a value for your grade','one year','two years','three years','four years');switch Input case 1 disp('Monday') case 2 disp('Tuesday') case 3 disp('W

3、ednesday') case 4 disp('Thursday')end(2)编写程序,提示用户输入购买方糖的数量,输入数据是糖的块数。计算购买方糖的费用。价格确定方法是:1块$0.75;2块1.25;3块1.65。当多于3块时,总费用$1.65+$0.30*(购买数量-3)。sugar=input('Enter a value for quantityof sugarn');switch sugar case 1 fprintf('%3.0f lump sugar costs $0.75n',sugar) case 2 fprintf

4、('%3.0f lump sugar cost $1.25n',sugar) case 3 fprintf('%3.0f lump sugar cost $1.65n',sugar) otherwise output=1.65+0.3*(sugar-3); fprintf('%3.0f lump sugars cost $%4.2fn',sugar,output) end(3)用for循环结构求矢量元素的和,已知矢量x等于 x=1 23 43 72 87 56 98 33用函数sum检查计算结果,并用while重写一遍程序。x=1 23 43 7

5、2 87 56 98 33;a=0;for k=1:length(x) a=a+x(k);endif a=sum(x) disp(a)else disp('error')endx=1 23 43 72 87 56 98 33;a=0;k=1;while k<=length(x) a=a+x(k); k=k+1;endif a=sum(x) disp(a)else disp('error')end(4)用函数primes求小于100的素数,用for循环计算相邻两个素数的乘积。例如,前4个素数是2 3 5 7 计算 2*3 3*5 5*7输出 6 15 35x

6、=primes(100);for k=1:length(x)if k+1<length(x) a=x(k)*x(k+1); b(k)=a;else breakendenddisp(b)引 言大规模的数据表格很难直观表现信息内容,而工程师利用图形化技术可以使信息更加容易理解。图形化技术可以直观地反映出数据的变化趋势、最大值和最小值,也可以非常容易地检查出因计算或测量引起的错误数据点。而且,图形化数据可以让人迅速准确地判断所编写的程序是否能够得出正确的结果。(1)二维图形基本绘图命令在工程中最常用的图形是x-y坐标图。x-y坐标图就是用一系列有序数据标识出的二维坐标平面上的点,然后把这些点用

7、直线连起来就构成二维图形。通过测量或计算得到x和y的坐标值,一般情况下,自变量x的值描绘在x轴上,因变量y的值描绘在y轴上。% 绘第一张图x=0:0.2:2*pi;y=sin(x);plot(x,y) %绘制二维图形% 加修饰title('绘制二维图形'); %添加标题xlabel('自变量x');ylabel('因变量y'); %添加坐标轴标识% 加栅格grid %添加栅格,grid on/grid offhold on %hold/hold on保持住当前图形,hold off覆盖当前图形pause(10)% 绘第二张图y1=cos(x)pl

8、ot(x,y1,'-o')% 继续修饰axis(0,2*pi,-1.2,1.2) %设定坐标轴的范围legend('sin(x)','cos(x)') %添加图例gtext('sinx'); %添加文本框gtext('cosx'); %添加文本框命 令描 述运 用plot创建一个x-y坐标图plot(x,y)title添加标题title(my graph)xlabel添加x轴坐标xlabel(坐标轴名称)ylabel添加y轴坐标ylabel(坐标轴名称)grid添加栅格grid on添加栅格/grid off取消栅

9、格hold定义当前图形hold on保持当前图形/hold off覆盖当前图形pause暂停程序,观察图形pause暂停程序,按任意键继续pause(n) 继续执行前中止执行程序n秒axis如果没有输入参数,就将坐标轴固定在当前配置状态。再次输入axis就是恢复对坐标轴的控制axis(v)axis的输入参数是一个四维矢量,分别定义了x轴和y轴的最小值和最大值,例如:xmin,xmax,ymin,ymaxlegendlegend(string1,string2,etc),添加图例,对不同曲线加以说明texttext(x_coordinate,y_coordinate,string),输入参数为文

10、本框的位置和内容gtextgtext(string),添加文本框,框的位置由鼠标操作来确定注意:添加标题和坐标轴标注前要先创建图形,否则绘图命令会删除前面已经设置的标注。命令xlabel、ylabel和title中的字符串一般用单引号结束。在matlab中也可以使用撇号(如its)。输入两个单引号中间可以用撇号隔开,但不能使用双引号。绘制多条曲线 编程过程中经常需要绘制完图形后继续进行计算,然后又绘制图形。Matlab可以随时生成和显示图形窗口,但生成的第二幅图会覆盖掉第一幅图形。怎么办?l 用figure创建新的图形。使用figure重新打开一个新的图形窗口,并在窗口中绘制图形。figure

11、(n) 例如输入 figure(2),会出现一个新的图形窗口,可以在此窗口绘制下一个图形。l 使用plot与hold on相结合l 用plot,plot输入x矢量和y矢量分别绘制曲线plot(x1,y1,x2,y2) 如果函数plot的输入参数是一个单独的矩阵,则Matlab对矩阵的每一列单独绘图。矩阵的行下标矢量作为x轴坐标,每列所对应的数值作为y轴坐标绘制曲线。如果plot有两个自变量,一个是矢量,一个是矩阵,那么,matlab按行依次绘制图形。x=0:pi/100:2*pi;y1=cos(x)*2;y2=cos(x)*3;y3=cos(x)*4;y4=cos(x)*5;z=y1;y2;y

12、3;y4;plot(x,y1,x,y2,x,y3,x,y4);figure(2)plot(x,z) 线条、颜色和标记的风格 用户可以选择实线、虚线、点和点画线作为绘图线,选择加号、星形、圆圈等形状作为标记。此外还可以选择不同的绘图颜色。x=0:0.2:2*pi;y=sin(x);plot(x,y,'-or')线条、颜色和标记选项线条类型标识符点类型标识符颜色标识符实线-点.蓝色b点:圆圈o绿色g点画线-.X形状x红色r虚线-加号+青色c  星号*洋红色m  方形s黄色y  菱形d黑色k  下三角v白

13、色w  上三角  提 示清除图形用clf,关闭图形窗口用close命令。 子图使用subplot命令可以把图形窗口分成m行n列的多个区域。函数subplot(m,n,p)把图形窗口分成m×n个小窗口,在第p个小窗口绘制下一个图形窗口按从左到右,从上到下的顺序编号。x=0:pi/100:2*pi;subplot(2,1,1)plot(x,sin(x);subplot(2,1,2)plot(x,cos(x)极坐标图 在Matlab中可以绘制极坐标图。 polar(theta,r) 根据输入角度(一般用弧度表示)和半径r绘制极坐标图x=0:pi/10

14、0:pi;y=sin(x);polar(x,y)练 习1.定义数组theta,范围从0到2*pi,步长为0.04*pi。定义半径数组r=5*cos(4*theta)。根据theta和r的值绘制极坐标图。theta=0:pi/100:2*pi;r=5*cos(4*theta);polar(theta,r)2.数组theta保持不变,根据关系式r=5-5*sin(theta)绘制极坐标图。theta=0:pi/100:2*pi;r=5-5*sin(theta);polar(theta,r)3.定义数组theta=pi/2:4/5*pi:4.8*pi,创建6个元素的全1数组r,根据theta和r绘制

15、极坐标图。theta=pi/2:4/5*pi:4.8*pi;r=ones(1,6);polar(theta,r)条形图和饼图条形图和饼图bar(x)若x矢量,则绘制垂直条形图;若x为二维矩阵,则按行分组显示barh(x)若x矢量,则绘制水平条形图;若x为二维矩阵,则按行分组显示bar3(x)绘制三维条形图bar3h(x)绘制三维水平条形图pie(x)绘制饼图。矩阵x的元素用饼图中的一部分表示pie3(x)绘制三维饼图。矩阵x中的元素用饼图的一部分表示hist(x)绘制柱状图clear,clcx=1 2 5 4 8;y=x;1:5;% 垂直条形图subplot(2,2,1)bar(x,'

16、r'),title('A bar graph of vector x');% 垂直条形图,输入矩阵subplot(2,2,2)bar(y),title('A bar graph of matrix y');% 三维条形图subplot(2,2,3)bar3(y),title('A three-dimensional bar graph')% 饼图subplot(2,2,4)pie3(x),title('A three-dimensional pie graph')柱状图柱状图是一种主要用于数据统计分析的图形,通过它可以显示

17、出数据的分布情况。在Matlab中,一般将数据从最大值到最小值之间等分成10份,用柱状图显示。定义矩阵x是工程导论课程的期末考试成绩。用柱状图显示结果。x=100 95 74 87 22 78 34 35 93 88 86 42 55 48;hist(x)双y轴图在解决实际问题时,有时需要把两个x-y坐标图输出到同一坐标图中。在这种情况下,如果两个y轴的数据相差很多,就很难看出数据的变化情况。x=0:pi/20:2*pi;y1=sin(x);y2=exp(x);% 同一个y轴作图subplot(1,2,1)plot(x,y1,x,y2)gtext('sinx'),gtext(&

18、#39;exp')% 双y轴作图subplot(1,2,2)plotyy(x,y1,x,y2)gtext('sinx'),gtext('exp')函数绘图运用函数fplot可以在不定义x和y轴坐标数组的条件下绘制某个函数的图形。输入代码:fplot('sin(x)',-2*pi,2*pi)函数fplot的第一个自变量是字符串表示的绘图函数的名称,第二个自变量是数组。如果绘图的函数很复杂,输入字符串很不方便,则可以定义一个匿名函数,然后直接输入函数的句柄。下一章将详细介绍匿名函数和函数句柄的使用方法。(2)三维图形 三维曲线图与plot类似

19、,函数plot3是三维绘图的基本函数,它通过x,y,z三个输入矢量在三维空间绘制曲线图。clear,clcx=linspace(0,10*pi,1000);y=cos(x);z=sin(x);% plot3绘图subplot(1,2,1)plot3(x,y,z)grid onxlabel('angle'),ylabel('cos(x)'),zlabel('sin(x)'),title('plot3绘图');% comet3绘图subplot(1,2,2)comet3(x,y,z)xlabel('angle'),yl

20、abel('cos(x)'),zlabel('sin(x)'),title('comet3绘图');函数comet3表现三维图形的动画效果,若绘图程序的执行速度很快,则需要较多的数据点。使用函数comet可以绘制二维图形。相应的,类似于二维曲线绘制函数,Matlab还提供了其他的三维曲线绘制函数,如stem3()可以绘制三维火柴杆形曲线,fill3()可以绘制三维的填充图形,bar3()可以绘制三维的直方图等。三维曲面图曲面图就是把数据绘制成三维曲面,mesh图和surf图是两种常用的曲面图。Mesh图绘制mesh图的方法有很多种。若函数自变量是

21、一个二维m×n矩阵,则矩阵中元素的数值为z轴坐标,元素的位置分别是x轴和y轴坐标。z=1:10;2:2:20;3:12;mesh(z)xlabel('x-axis')ylabel('y-axis')zlabel('z-axis')函数mesh可以有三个自变量:mesh(x,y,z)。其中,x,y,z分别是x轴、y轴和z轴的坐标。x=linspace(1,50,10)y=linspace(500,1000,3)z=1:10;2:2:20;3:12;mesh(x,y,z)xlabel('x-axis')ylabel('

22、;y-axis')zlabel('z-axis')surf图 surf图和mesh图类似,不同之处在于,surf图绘制的是着色的三维曲面图,其颜色由z值决定。surf的输入参数和mesh相同,可以有一个输入变量也可以有三个输入变量。surf(z)以z的行列编号作为x轴和y轴坐标。mesh也可以有三个自变量:mesh(x,y,z)。其中x,y,z分别是x轴、y轴和z轴的坐标。矢量x的元素个数必须和矩阵z的列数相同,矢量y的元素个数必须和矩阵z的行数相同。z=1:10;2:2:20;3:12;subplot(1,2,1)mesh(z)xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis'),title('mesh图')subplot(1,2,2)surf(z)xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis'),title('surf图')Meshgrid的运用在三维绘图过程中,meshgrid可以将图像网格化。meshgrid用于从已知数组a和b产生网格。生成的网格

温馨提示

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

评论

0/150

提交评论