第四讲-matlab数学建模之图像处理、程序设计课件.ppt

上传人:飞****2 文档编号:82436758 上传时间:2023-03-25 格式:PPT 页数:69 大小:1.64MB
返回 下载 相关 举报
第四讲-matlab数学建模之图像处理、程序设计课件.ppt_第1页
第1页 / 共69页
第四讲-matlab数学建模之图像处理、程序设计课件.ppt_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《第四讲-matlab数学建模之图像处理、程序设计课件.ppt》由会员分享,可在线阅读,更多相关《第四讲-matlab数学建模之图像处理、程序设计课件.ppt(69页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1第四讲 图 形 处 理MATLAB 7程序设计21.基本的绘图命令 基本的绘图命令 绘图的一般步骤 绘制二维曲线图 极坐标图形的绘制 多个图形的绘制方法 曲线的色彩、线型和数据点型 3(1)基本的绘图命令 绘制基本线性图的函数表 函 数 名功 能 描 述plot在x轴和y轴都按线性比例绘制二维图形plot3在x轴、y轴和z轴都按线性比例绘制三维图形loglog在x轴和y轴按对数比例绘制二维图形semilogx在x轴按对数比例,y轴按线性比例绘制二维图形semilogy在y轴按对数比例,x轴按线性比例绘制二维图形plotyy绘制双y轴图形图形的标注 为清晰表达图形和图中曲线的意义,应在图形中加

2、入适当的标注,包括图形标题、X轴、Y轴名称等。4图图形形标标注命注命令令含含义义titletitle图图形形标题标题xlabelxlabel对对x x轴标轴标注名称注名称ylabelylabel对对y y轴标轴标注名称注名称texttext通通过过程序在程序在图图形指定位置放入文本字形指定位置放入文本字符串符串gtextgtext点点击击鼠鼠标标指定位置放入文本字符串指定位置放入文本字符串legendlegend在在图图形中添加注解形中添加注解gridgrid网格网格线线axisaxis坐坐标轴调标轴调整整holdhold图图形保持形保持zoomzoom图图形形缩缩放放5(2)绘图的一般步骤

3、基本的绘图步骤 步步 骤骤典典 型型 代代 码码1.准准备绘图备绘图数据数据x=0:0.2:12;y1=bessel(1,x);2.选选择择一一个个窗窗口口并并在在窗窗口口中中给给图图形形定位定位figure(1),subplot(2,2,1)3.调调用基本的用基本的绘图绘图函数函数h=plot(x,y1,x,y2,x,y3);4.选择线选择线型和型和标记标记特性特性set(h,LineWidth,2,LineStyle,-;:;-.)5.设设置置坐坐标标轴轴的的极极限限值值、标标记记符符号号和网格和网格线线axis(0 12-0.5 1)6.使使用用坐坐标标轴轴标标签签、图图例例和和文文本本

4、对对图图形形进进行注行注释释xlabel(Time)ylabel(Amplitude)6(3)绘制二维曲线图二维曲线图在MATLAB 7中的绘制是最为简便的。如果将X轴和Y轴的数据分别保存在两个向量中,同时向量的长度完全相等,那么可以直接调用函数进行二维图形的绘制。在MATLAB 7中,使用plot函数进行二维曲线图的绘制。7A A、二维平面图形与坐标系、二维平面图形与坐标系 1.几个基本的绘图命令几个基本的绘图命令 a.线性坐标曲线线性坐标曲线 plot 函数命令函数命令 plot 是是 MATLAB 二维曲线绘图中最简单、最重二维曲线绘图中最简单、最重要、使用最广泛的一个线性绘图函数。它可

5、以要、使用最广泛的一个线性绘图函数。它可以生成线段、生成线段、曲线和参数方程曲线曲线和参数方程曲线的函数图形。的函数图形。命令格式命令格式:plot(X,Y)plot(x1,y1,x2,y2,):综合调用方式综合调用方式 8用命令用命令 plot(x,y)绘制函数绘制函数 y=cos(x)在两个周期内的图形。在两个周期内的图形。x=0:0.01:2*pi;y=cos(x);plot(x,y)在同一图形窗口中在同一图形窗口中用命令用命令 plot(x,y)绘出正弦余弦函数的图形。绘出正弦余弦函数的图形。x=0:0.01:2*pi;y=sin(x);cos(x);plot(x,y)9调用格式调用格

6、式:plot(x,y,s),s 为类型说明参数,是字符串。为类型说明参数,是字符串。s 字符串字符串可以是三种类型的可以是三种类型的符号之一符号之一,也可以是线型与颜色,也可以是线型与颜色和定点标记与颜色的和定点标记与颜色的组合组合;如果如果没有没有 s 参数参数,plot 将使用将使用缺省设置(实线,前七种颜缺省设置(实线,前七种颜色顺序着色色顺序着色)绘制曲线;)绘制曲线;在当前坐标系中绘图时,每调入一次绘图函数,在当前坐标系中绘图时,每调入一次绘图函数,MATLAB将擦掉坐标系中已有的图形对象。可以用将擦掉坐标系中已有的图形对象。可以用 hold on 命令命令在一在一个坐标系中个坐标系

7、中增加新的图形对象增加新的图形对象。注意。注意MATLAB会根据新图形会根据新图形的大小,重新改变坐标系的比例。的大小,重新改变坐标系的比例。用不同的用不同的线型和标注线型和标注来绘制两条曲线。来绘制两条曲线。t1=0:0.1:2*pi;t2=0:0.1:6;y1=sin(t1);y2=sqrt(t2);plot(t1,y1,:hb,t2,y2,-g)10绘制二维曲线图 x=0:0.01:10;y=tan(x);plot(x,y)11(4)极坐标图形的绘制 MATLAB提供了提供了polar函函数来在极坐数来在极坐标标下下绘绘制制图图形形:x=0:0.01:10;y1=sin(x);y2=co

8、s(x-2.5);polar(y1,y2,-r+)2.极坐极坐标图标图 polar(theta,rho)绘绘制以制以theta为为角度,角度,rho为为半径的极坐半径的极坐标标曲曲线线。例例:绘绘制以制以y=sin(2t)*cos(2t)的极坐的极坐标标曲曲线线。t=0:2*pi/100:2*pi;sin2t=sin(2*t);cos2t=cos(2*t);polar(t,sin2t.*cos2t)13(5)多个图形的绘制方法 subplot函数 可以实现多个图形的绘制:x=0:.1:20;subplot(2,2,1)plot(x,sin(x);14多个图形的绘制方法 x=0:.1:20;su

9、bplot(2,2,2)plot(x,cos(x);15多个图形的绘制方法 subplot(2,2,3)x=0:.1:2;y1=tan(x);plot(x,y1,-b*);16(6)曲线的色彩、线型和数据点型 曲线的色彩、线型和数据点型参数定义 颜颜 色色 符符 号号含含 义义数数 据据 点点 型型含含 义义线线 型型含含 义义b蓝蓝色色.点点-实线实线g 绿绿色色xX符号符号:点点线线r 红红色色+号号-.点划点划线线c 篮绿篮绿色色h六角星形六角星形-虚虚线线m 紫紫红红色色*星号星号(空白空白)不画不画线线y 黄色黄色s方形方形k 黑色黑色d菱形菱形17(1)图题的标注在MATLAB中,

10、通常可以使用3种方式给图形添加图题:使用Insert 菜单中的Title命令;使用属性编辑器(Property Editor);使用title函数。18图题的标注 x=0:.1:2;y1=sin(x);y2=sin(x-0.25);y3=sin(x-0.5);plot(x,y1,-.b,x,y2,-r*,x,y3,-.gh)title(There three lines)19文本标注举例 x=linspace(-3,5,100);y=cos(x);z=sin(x);plot(x,y,x,z)title(一条正弦曲线和一条余弦曲线)xlabel(x的取值范围)ylabel(Y和Z的值)20(4)

11、图例的添加为了更好地区分所绘制的多条曲线,可以使用图例加以说明,对它们表示的数据进行更准确的区分。可以使用如下3种方法生成图例:打开Insert 菜单中并选择Legend命令;单击工具栏中的legend图标;使用legend函数。21图例的添加 举例22(5)坐标网格的添加 在在图图形形绘绘制制过过程中,程中,为为了精确地知道了精确地知道图图形形上某点的坐上某点的坐标标,需要,需要绘绘制坐制坐标标网格来定位,网格来定位,MATLAB 7语语言中提供了言中提供了grid函数来函数来实现这实现这一功能:一功能:grid off命令关命令关闭闭坐坐标标网格;网格;grid on命令打开坐命令打开坐标

12、标网格网格 grid mirror命令使用更命令使用更细细化的网格;化的网格;grid(AX,)命令使用命令使用AX坐坐标标系代替当前坐系代替当前坐标标系。系。23坐标网格的添加举例 x=linspace(-5,5,100);y=x.4+22*x.2-6*x+10;plot(x,y)grid on24(6)使用矩形或是椭圆在图形中圈出重要部分 用户可以使用矩形或是椭圆在图形中圈出特别的区域,从而使得该区域能引起特别的注意。当其中的一个矩形或是椭圆被选中时,用户可以移动并改变它的大小,或是右击它,在弹出的快捷菜单中用户可以选择改变它的属性和外观。25应用举例当右击矩形或是椭圆时,将弹出一个菜单

13、263.三维图形的绘制 MATLAB语言提供了三维图形的处理功能。与二维图形相似,绘制三维图形时可以使用MATLAB语言提供的相关函数:三维线图指令plot3 三维网线图和曲面图 三维网线图三维曲面图27(1)三维线图指令plot3%该程序用于绘制三维的螺旋曲线图 t=0:pi/50:20*pi;plot3(sin(t),cos(2*t),sin(t)+cos(t)28(2)三维网线图使用mesh函数来绘制三维网格图形:z=peaks(50);mesh(z);(2)三维图形的绘制三.三维曲面图的绘制 例 试单独使用山峰演示函数peaks()。peaks(30)z=3*(1-x).2.*exp(

14、-(x.2)-(y+1).2)-10*(x/5-x.3-y.5).*exp(-x.2-y.2)-1/3*exp(-(x+1).2-y.2)30(3)三维曲面图 可是使用surf函数来绘制三维表面图形:X,Y=meshgrid(-4:0.2:4);Z=exp(-0.5*(X.2Y.2);surf(X,Y,Z)三维图形的绘制三维曲面图的绘制 例:t=0:pi/10:2*pi;X1,Y1,Z1=cylinder(3,20);Z1=2*Z1;X2,Y2,Z2=cylinder(2+cos(t),20);Z2=2*Z2;subplot(1,2,1)surf(X1,Y1,Z1)title(圆柱面)subp

15、lot(1,2,2)surf(X2,Y2,Z2)title(半径变化的圆柱面)三维图形的绘制 三维曲面图的绘制 例:X1,Y1,Z1=sphere(8);X2,Y2,Z2=sphere(20);subplot(1,2,1)surf(X1,Y1,Z1)title(64个面构成的球面)subplot(1,2,2)surf(X2,Y2,Z2)title(400个面构成的球面)334.特殊图形的绘制 条形图和面积图(Bar and Area Graphs)饼形图(Pie Charts)离散型数据图 方向和速度矢量图形 等高线的绘制(Contour Plots)34(1)条形图和面积图条形图和面积图用于

16、绘制向量和矩阵数据,这两种图形可以用来比较不同组数据的在总体数据中所占的比例,其中条形图适于表现离散型数据,而面积图适于表现连续型数据。函函 数数功功 能能 描描 述述bar绘绘制矩制矩阵阵Y(mn)各列的垂直条形各列的垂直条形图图,各条以垂直方,各条以垂直方向向显显示示barh绘绘制矩制矩阵阵Y(mn)各列的垂直条形各列的垂直条形图图,各条以水平方,各条以水平方式式显显示示bar3绘绘制矩制矩阵阵Y(mn)各列的三各列的三维维垂直条形垂直条形图图,条以垂直,条以垂直方向方向显显示示bar3h绘绘制矩制矩阵阵Y(mn)各列的三各列的三维维垂直条形垂直条形图图,各条以水,各条以水平方式平方式显显

17、示示area绘绘制向量的堆制向量的堆栈栈面面积图积图35条形图举例集合式条形图的绘制 y=1 2 3 4 5 6 7 8 9 10bar(y)36(2)饼形图在统计学中,人们经常要用到饼形图来表示各个统计量占总量的份额,饼形图可以显示向量或矩阵中的元素占所有元素总和的百分比,MATLAB提供了pie函数和pie3函数,分别用于绘制二维饼形图和三维饼形图。37(3)离散型数据图 MATLAB 7提供了一系列适于表现离散型数据的函数。其中常用的主要有stem 函数、stem3函数和stairs函数。38离散型数据图举例使用 stem(y)函数来绘制句柄状图形。y=rand(20,1);stem(y

18、)39(4)方向和速度矢量图形 MATLAB 7提供了一些函数用于绘制方向矢量和速度矢量图形,这些函数有compass、feather、quiver和quiver3。函 数功 能 描 述compass显示极坐标图形中的极点发散出来的矢量图feather显示从一条水平线上均匀间隔的点所发散出来的矢量图quiver显示由(u,v)矢量特定的二维矢量图 quiver3显示由(u,v,w)矢量特定的三维矢量图40方向和速度矢量图形举例 用compass函数绘制矢量图形:w=0:0.1:6;z=sin(w).*exp(j*w);compase(z)41(5)等高线的绘制 等高线函数为创建、显示并标注由一

19、个或多个矩阵确定的等值线。函 数 名功 能 描 述clabel使用等值矩阵生成标注,并将标注显示在当前图形contour显示矩阵Z的二维等高线图contour3显示矩阵Z的三维等高线图contourf显示矩阵Z的二维等高线图,并在各等高线之间用实体颜色填充contourc用于计算由其他等高线函数调用的等值矩阵meshc创建一个与二维等高线图匹配的网线图surfc创建一个与二维等高线图匹配的曲面图42等高线的绘制举例使用contour函数绘制等高线图形:x,y,z=peaks;contour(x,y,z)三维图形的绘制三.等高线图的绘制 例:X,Y,Z=peaks(30);subplot(2,2

20、,1)surf(X,Y,Z)title(演示山峰的三维曲面图)subplot(2,2,2)contour(X,Y,Z,5)title(演示山峰的等高线图)subplot(2,2,3)contourf(Z,5)title(在相邻等高线之间用颜色填充)subplot(2,2,4)C,h=contour(Z,5);clabel(C,h)title(为等高线添加高度值)4344视点控制举例view函数的使用:X,Y=meshgrid(-5:0.2:5);Z=exp(0.5*(X.2-Y.2);surf(X,Y,Z)view(30,60)45光照控制举例本例首先绘制一个膜面图,然后使用位置向量 0-2

21、1 设置光源的方向。z=peaks(50);surf(z)light(Position,0.5-3 2)46绘制图形的图形框架窗口对象MATLAB 7语言中实现句柄访问的函数 函 数 名功 能 描 述gca获得当前坐标轴对象的句柄gcbf获得当前正在执行调用的图形对象的句柄gcbo获得当前正在执行调用的对象的句柄gcf获得当前图形对象的句柄gco获得当前对象的句柄47核心(Core)对象 MATLAB 7语言中创建核心对象的函数 函 数 名功 能 描 述axes坐标轴imageMATLAB 7语言中的图像light光源line二维图形中最基本的图形对象patch按指定方式填充的多边形recta

22、ngle具有可设置边界和表面颜色的二维图形对象surface图形表面text图形中的文本48核心(Core)对象举例 x,y=meshgrid(-2:.4:2);Z=x.*exp(-x.2-y.2);fh=figure(Position,350 275 600 450,Color,w);ah=axes(Color,.8.8.8,XTick,-2-1 0 1 2,.YTick,-2-1 0 1 2);sh=surface(XData,x,YData,y,ZData,Z,.FaceColor,get(ah,Color)+.1,.EdgeColor,k,Marker,o,.MarkerFaceCol

23、or,.5 1.85);view(3)49绘图(Plot)对象举例 x,y,z=peaks;c,h=contour(x,y,z);set(h,LineWidth,3,LineStyle,:)50set函数在在MATLAB 7中,使用中,使用set函数可以设置对象函数可以设置对象的属性值,其通常的调用格式如下。的属性值,其通常的调用格式如下。set(H,PropertyName,PropertyValue)命令设置命令设置PropertyName的属性为的属性为PropertyValue。set(H,a)命令中,命令中,a为结构型变量,字段名为图形对象的为结构型变量,字段名为图形对象的属性名,字

24、段值为映像的属性值。属性名,字段值为映像的属性值。set(H,PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,.)命令同时设置多个属性的值。命令同时设置多个属性的值。51默认属性举例 whitebg(w)%create a figure with a white color schemeset(0,DefaultAxesColorOrder,0 0 0,.DefaultAxesLineStyleOrder,-|-|:|-.)Z=peaks;plot(1:49,Z(4:7,:)52M文本编辑器的基本知识MATLAB 7的控制流语

25、言变量和函数的种类程序设计的辅助函数程序的调试和优化 MATLAB 7程序设计531.M文本编辑器的基本知识 M文本编辑器 M文件的基本属性 M文件的组成部分 脚本式M文件 函数式M文件 54M文件的组成部分函数式M文件的组成部分。调出Medit窗口,在里边输入如下内容:function f=fact(n)%函数的定义行%Compute a factorial value.%H1行%FACT(N)returns the factorial of N,%帮助文本%usually denoted by N!%Put simply,FACT(N)is PROD(1:N).%注释f=prod(1:n)

26、;%函数体55M文件的组成部分及其功能 M文件的组成部分及其功能 组 成 部 分描 述函数定义行(仅限于函数式M文件)定义函数名,以及输入和输出变量的数目和顺序H1 行H1行对程序进行概括性的描述,使用help和lookfor命令都可以调出此行帮助文本这是比H1 行更详细的帮助信息,使用help命令时与H1行一起显示函数体函数体是M文件的主要部分,程序的计算和设计都在此实现注释解释程序行的意义56脚本式M文件举例本脚本式M文件绘制一个正弦曲线:%此文件用于绘制【2pi,2pi】区间的正弦曲线图x=-2*pi:0.05:2*pi;y=sin(x);plot(x,y,c+)legend(正弦曲线图

27、)57函数式M文件举例例 判断某一年是否为闰年。解:调出Medit窗口,在里边输入如下内容。%该函数用于判断某一年是否为闰年%使用格式为isleapea(y),其中y是用户所要计算的年份function isleapyear(year)sign=0;if rem(year,4)=0 sign=sign+1;endif rem(year,100)=0 sign=sign-1;end if rem(year,400)=0 sign=sign+1;end if sign=1 fprintf(%4d year is a leap year.n,year)else fprintf(%4d year is

28、 not a leap year.n,year)end582.控制流最简单的程序控制就是顺序结构,用户依次输入命令语句即可。MATLAB 7语言还提供了4种高级的控制结构。它们是:if-else-end结构、switch-case-otherwise-end结构、for循环和while循环。59(1)顺序结构 顺序结构是最简单的程序结构,用户在编写好程序之后,系统将按照程序的物理位置顺次执行。a=1;b=2;c=3;s1=a+bs2=s1+cs3=s2/s260(2)ifend语句只有一种选择时的情况 if 表达式执行语句end 61ifend语句有两种选择时的情况 if 表达式 执行语句1

29、else 执行语句2end 62ifend语句 有3种或3种以上选择时的情况 if 表达式1 表达式1为真时的执行语句1 elseif表达式2 表达式2为真时的执行语句2 elseif表达式3 表达式3为真时的执行语句3elseifelse 所有的表达式都为假时的执行语句 end63(3)switchcaseend语句 switch开关语句 case条件语句,执行语句,执行语句 case 条件语句1,条件语句2,条件语句3,执行语句,执行语句 otherwise,执行语句,执行语句 end64(5)for循环语句 For语句是一种循环语句,可以让用户很方地实现循环操作,从而可以从容地应付大规模

30、的循环语句。for i=表达式,执行语句,执行语句 end65(6)while循环语句 与for循环不同,while循环的判断控制可以是逻辑判断语句,因此,它的循环次数可以是一个不定数。这样就赋予了它比for循环更广泛的用途。while表达式 执行语句end66(7)人机交互命令终止命令break和return 继续命令continue 等待用户反应命令pause echo命令 用户输入提示命令input 请求键盘输入命令keyboard 67(2)函数的分类 主函数 匿名函数 嵌套式函数 子函数 局部函数 68主函数 M文件中的第一个函数就叫做主函数,前边章节中所引用的函数事实上都是主函数,

31、主函数之后可以是任意数量的子函数,它们可以作为主程序的子程序。一般来说,在命令窗口或是其他的M文件只能调用主函数,调用的时候就是直接调用其函数名。比如,函数average的M文件average.m如下:function y=average(x)%AVERAGE Mean of vector elements.y=sum(x)/length(x);%Actual computation69子函数 与其他的高级语言一样,在MATLAB 7语言中也可以很方便地定义子函数,用来扩充函数的功能。在函数文件中题头定义的函数为主函数,而在函数体内定义的其他函数都被视为子函数。子函数只能为主函数或同一主函数下的其他子函数所使用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com