当前位置:文档之家› matlab第八讲教案

matlab第八讲教案

西南科技大学本科生课程备课教案计算机技术在安全工程中的应用——Matlab入门及应用授课教师:徐中慧班级:专业:安全技术及工程第八章绘图课型:新授课教具:多媒体教学设备,matlab教学软件一、目标与要求掌握matlab中二维绘图、三维绘图、子图等相关图形绘制功能。

二、教学重点与难点本堂课教学的重点在于引导学生在编写matlab程序时能够熟练运用绘图的相关函数实现相应的功能。

三、教学方法本课程主要通过讲授法、演示法、练习法等相结合的方法来引导学生掌控本堂课的学习内容。

四、教学内容课后习题讲解(1)用switch/case,menu结构编写程序求解下列问题:提示用户输入入学时间是一年、二年、三年还是四年,输入数据是字符串。

根据输入数据决定期末考试的时间。

其中,一年级周一考试,二年级周二考试,三年级周三考试,四年级周四考试。

Input=menu('Enter a value for your grade','one year','two years','three years','four years');switch Inputcase 1disp('Monday')case 2disp('Tuesday')case 3disp('Wednesday')case 4disp('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 sugar\n');switch sugarcase 1fprintf('%3.0f lump sugar costs $0.75\n',sugar)case 2fprintf('%3.0f lump sugar cost $1.25\n',sugar)case 3fprintf('%3.0f lump sugar cost $1.65\n',sugar)otherwiseoutput=1.65+0.3*(sugar-3);fprintf('%3.0f lump sugars cost $%4.2f\n',sugar,output)end(3)用for循环结构求矢量元素的和,已知矢量x等于x=[1 23 43 72 87 56 98 33]用函数sum检查计算结果,并用while重写一遍程序。

x=[1 23 43 72 87 56 98 33]; a=0;for k=1:length(x)a=a+x(k);endif a==sum(x)disp(a)elsedisp('error')end x=[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)elsedisp('error')end(4)用函数primes求小于100的素数,用for循环计算相邻两个素数的乘积。

例如,前4个素数是2 3 5 7计算2*3 3*5 5*7输出 6 15 35x=primes(100);for k=1:length(x)if k+1<length(x)a=x(k)*x(k+1);b(k)=a;elsebreakendenddisp(b)引言大规模的数据表格很难直观表现信息内容,而工程师利用图形化技术可以使信息更加容易理解。

图形化技术可以直观地反映出数据的变化趋势、最大值和最小值,也可以非常容易地检查出因计算或测量引起的错误数据点。

而且,图形化数据可以让人迅速准确地判断所编写的程序是否能够得出正确的结果。

(1)二维图形①基本绘图命令在工程中最常用的图形是x-y坐标图。

x-y坐标图就是用一系列有序数据标识出的二维坐标平面上的点,然后把这些点用直线连起来就构成二维图形。

通过测量或计算得到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)plot(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取消栅格hold 定义当前图形hold on保持当前图形/hold off覆盖当前图形pause 暂停程序,观察图形pause暂停程序,按任意键继续pause(n)继续执行前中止执行程序n秒axis 如果没有输入参数,就将坐标轴固定在当前配置状态。

再次输入axis 就是恢复对坐标轴的控制axis(v) axis的输入参数是一个四维矢量,分别定义了x轴和y轴的最小值和最大值,例如:[xmin,xmax,ymin,ymax]legend legend(‘string1’,’string2’,etc),添加图例,对不同曲线加以说明text text(x_coordinate,y_coordinate,’string’),输入参数为文本框的位置和内容gtext gtext(’string’),添加文本框,框的位置由鼠标操作来确定注意:添加标题和坐标轴标注前要先创建图形,否则绘图命令会删除前面已经设置的标注。

命令xlabe l、ylabel和title中的字符串一般用单引号结束。

在matlab中也可以使用撇号(如it’s)。

输入两个单引号中间可以用撇号隔开,但不能使用双引号。

②绘制多条曲线编程过程中经常需要绘制完图形后继续进行计算,然后又绘制图形。

Matlab可以随时生成和显示图形窗口,但生成的第二幅图会覆盖掉第一幅图形。

怎么办?●用figure创建新的图形。

使用figure重新打开一个新的图形窗口,并在窗口中绘制图形。

figure(n)例如输入figure(2),会出现一个新的图形窗口,可以在此窗口绘制下一个图形。

●使用plot与hold on相结合●用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;y3;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')提示清除图形用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/100:pi;y=sin(x);polar(x,y)练习1.定义数组thet a,范围从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绘制极坐标图。

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,'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')⑦柱状图柱状图是一种主要用于数据统计分析的图形,通过它可以显示出数据的分布情况。

相关主题