MATLAB7课件(数学建模培训)-1475_第1页
MATLAB7课件(数学建模培训)-1475_第2页
MATLAB7课件(数学建模培训)-1475_第3页
MATLAB7课件(数学建模培训)-1475_第4页
MATLAB7课件(数学建模培训)-1475_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-3-61图 形 处 理nMATLAB 7语言除了有强大的矩阵处理功能之外,它的绘图功能也是相当强大的。n学会使用MATLAB 7的图形处理功能,包括基本的绘图命令、图形的简单控制、图形窗口的编辑以及图形的高级控制等。(各种图形注释方法,三维图形的绘制方法)2022-3-62具体内容n基本的绘图命令n各种图形注释方法n三维图形的绘制方法n特殊一些特殊图形的绘制n图形的高级控制技巧2022-3-631. 基本的绘图命令 n基本的绘图命令 n绘图的一般步骤 n绘制二维曲线图 n极坐标图形的绘制 n多个图形的绘制方法 n曲线的色彩、线型和数据点型 2022-3-64(1)基本的绘图命令n 绘

2、制基本线性图的函数表 函 数 名功 能 描 述plot在x轴和y轴都按线性比例绘制二维图形plot3在x轴、y轴和z轴都按线性比例绘制三维图形loglog在x轴和y轴按对数比例绘制二维图形semilogx在x轴按对数比例,y轴按线性比例绘制二维图形semilogy在y轴按对数比例,x轴按线性比例绘制二维图形plotyy绘制双y轴图形2022-3-65(2)绘图的一般步骤 n基本的绘图步骤 步 骤典 型 代 码1. 准备绘图数据x = 0:0.2:12;y1 = bessel(1,x);2. 选择一个窗口并在窗口中给图形定位figure(1) ,subplot(2,2,1) 3. 调用基本的绘图

3、函数h = plot(x,y1,x,y2,x,y3);4. 选择线型和标记特性set(h,LineWidth,2,LineStyle,-;:;-.)5. 设置坐标轴的极限值、标记符号和网格线axis(0 12 -0.5 1)6. 使用坐标轴标签、图例和文本对图形进行注释xlabel(Time)ylabel(Amplitude)7. 输出图形2022-3-66(3)绘制二维曲线图n二维曲线图在MATLAB 7中的绘制是最为简便的。如果将X轴和Y轴的数据分别保存在两个向量中,同时向量的长度完全相等,那么可以直接调用函数进行二维图形的绘制。在MATLAB 7中,使用plot函数进行二维曲线图的绘制。

4、 2022-3-67绘制二维曲线图n x= 0:0.01:10;n y=tan(x);n plot(x,y)n2022-3-68(4)极坐标图形的绘制 nMATLAB提供了polar函数来在极坐标下绘制图形 :n x= 0:0.01:10;n y1=sin(x);n y2 = cos(x-2.5);n polar(y1,y2,-r+)n2022-3-69(5)多个图形的绘制方法 nsubplot函数 可以实现多个图形的绘制:n x = 0:.1:20;n subplot(2,2,1)n plot(x,sin(x);n 2022-3-610多个图形的绘制方法n x = 0:.1:20;n sub

5、plot(2,2,2)n plot(x,cos(x);n 2022-3-611多个图形的绘制方法n subplot(2,2,3)n x = 0:.1:2;n y1=tan(x);n plot(x,y1,-b*);n2022-3-612(6)曲线的色彩、线型和数据点型 n曲线的色彩、线型和数据点型参数定义 颜 色 符 号含 义数 据 点 型含 义线 型含 义b蓝色.点-实线g 绿色xX符号:点线r 红色+号-.点划线c 篮绿色h六角星形-虚线m 紫红色*星号(空白)不画线y 黄色s方形k 黑色d菱形o: 圆 v: 下三角 : 上三角 : 右三角 p: 正五边形w: 白色 k: 黑色Plot(x,

6、y,s)2022-3-6132. 图形注释 n图题的标注 n坐标轴的标签 n文本标注和交互式文本标注 n图例的添加 n 坐标网格的添加 n使用矩形或是椭圆在图形中圈出重要部分 2022-3-614(1) 图题的标注n在MATLAB中,通常可以使用3种方式给图形添加图题:q使用Insert 菜单中的Title命令;q使用属性编辑器(Property Editor);q使用title函数。2022-3-615图题的标注n x = 0:.1:2;ny1=sin(x);ny2 = sin(x-0.25); ny3 = sin(x-0.5);n plot(x,y1,-.b, x,y2,-r*, x,y3

7、,-.gh)n title(There three lines)n2022-3-616(2) 坐标轴的标签 n在MATLAB 7中,可以使用如下3种方式给图形的坐标轴添加标签:q使用Insert菜单下的Label选项;q使用属性编辑器(Property Editor); q使用MATLAB 7的添加标签命令;2022-3-617坐标轴的标签添加举例n 使用属性编辑器(Property Editor)添加坐标轴标签q 打开Tools菜单,选择Edit Plot命令,激活图形编辑状态。q在图形框内双击空白区域,调出属性编辑器;也可以采取在图形框内右击,从弹出的菜单中选择Properties 项的方

8、式调出属性编辑器;或者是在View菜单中选择Property Editor项。2022-3-618(3)文本标注和交互式文本标注n用户可以在MATLAB 7图形窗口的任意地方添加文本注释,从而更好地解释图形窗口的数据。MATLAB 7提供了text函数和gtext函数来进行文本标注。其中gtext函数的使用形式更为灵活,可以实现交互式文本标注。 2022-3-619文本标注举例n x=linspace(-3,5,100);n y=cos(x);n z=sin(x);n plot(x,y,x,z)n title(一条正弦曲线和一条余弦曲线)n xlabel(x的取值范围)n ylabel(Y和Z

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

10、 2022-3-623坐标网格的添加举例n x=linspace(-5,5,100);n y=x.4+22*x.2-6*x+10;n plot(x,y)n grid onn2022-3-624(6) 使用矩形或是椭圆在图形中圈出重要部分 n用户可以使用矩形或是椭圆在图形中圈出特别的区域,从而使得该区域能引起特别的注意。当其中的一个矩形或是椭圆被选中时,用户可以移动并改变它的大小,或是右击它,在弹出的快捷菜单中用户可以选择改变它的属性和外观。2022-3-625应用举例n当右击矩形或是椭圆时,将弹出一个菜单 2022-3-6263. 三维图形的绘制 nMATLAB语言提供了三维图形的处理功能。与

11、二维图形相似,绘制三维图形时可以使用MATLAB语言提供的相关函数:q三维线图指令plot3 q三维网线图和曲面图 n三维网线图n三维曲面图2022-3-627(1)三维线图指令plot3 n % 该程序用于绘制三维的螺旋曲线图n t = 0:pi/50:20*pi;n plot3(sin(t),cos(2*t),sin(t)+cos(t)2022-3-628(2) 三维网线图 (与plot3区别,可以绘制一区间内完整曲面,而非单根曲线)n使用mesh函数来绘制三维网格图形:n z=peaks(50);n mesh(z);n 2022-3-629(3)三维曲面图 n使用surf函数来绘制三维表

12、面图形 :n X,Y=meshgrid(-4:0.2:4);n Z=exp(-0.5*(X.2Y.2);n surf(X,Y,Z)n2022-3-6304. 特殊图形的绘制 n条形图和面积图(Bar and Area Graphs) n饼形图(Pie Charts)n离散型数据图 n方向和速度矢量图形 n等高线的绘制(Contour Plots) 2022-3-631(1)条形图和面积图n条形图和面积图用于绘制向量和矩阵数据,这两种图形可以用来比较不同组数据的在总体数据中所占的比例,其中条形图适于表现离散型数据,而面积图适于表现连续型数据。函 数功 能 描 述bar绘制矩阵Y(mn)各列的垂直

13、条形图,各条以垂直方向显示barh绘制矩阵Y(mn)各列的垂直条形图,各条以水平方式显示bar3绘制矩阵Y(mn)各列的三维垂直条形图,条以垂直方向显示bar3h绘制矩阵Y(mn)各列的三维垂直条形图,各条以水平方式显示area绘制向量的堆栈面积图2022-3-632条形图举例n集合式条形图的绘制 n y=1 2 3 4 5 6 7 8 9 10nbar(y)2022-3-633(2)饼形图n在统计学中,人们经常要用到饼形图来表示各个统计量占总量的份额,饼形图可以显示向量或矩阵中的元素占所有元素总和的百分比,MATLAB提供了pie函数和pie3函数,分别用于绘制二维饼形图和三维饼形图。 20

14、22-3-634(3)离散型数据图 nMATLAB 7提供了一系列适于表现离散型数据的函数。n其中常用的主要有stem 函数、stem3函数和stairs函数。2022-3-635离散型数据图举例n使用 stem(y)函数来绘制句柄状图形 。n y=rand(20,1);n stem(y)n 2022-3-636(4)方向和速度矢量图形 nMATLAB 7提供了一些函数用于绘制方向矢量和速度矢量图形,这些函数有compass、feather、quiver和quiver3。 函 数功 能 描 述compass显示极坐标图形中的极点发散出来的矢量图feather显示从一条水平线上均匀间隔的点所发散

15、出来的矢量图quiver显示由(u,v)矢量特定的二维矢量图 quiver3显示由(u,v,w)矢量特定的三维矢量图2022-3-637方向和速度矢量图形举例 n 用compass函数绘制矢量图形 :n w=0:0.1:6;n z=sin(w).*exp(j*w);n compase(z)n2022-3-638(5)等高线的绘制 n等高线函数为创建、显示并标注由一个或多个矩阵确定的等值线。函 数 名功 能 描 述clabel使用等值矩阵生成标注,并将标注显示在当前图形contour显示矩阵Z的二维等高线图contour3显示矩阵Z的三维等高线图contourf显示矩阵Z的二维等高线图,并在各等

16、高线之间用实体颜色填充contourc用于计算由其他等高线函数调用的等值矩阵meshc创建一个与二维等高线图匹配的网线图surfc创建一个与二维等高线图匹配的曲面图2022-3-639等高线的绘制举例n使用contour函数绘制等高线图形:n x,y,z=peaks;n contour(x,y,z)n 2022-3-6405. 图形的高级控制 n视点控制和图形的旋转 n 颜色的使用 q颜色映像理解 q颜色映像使用 q颜色映像显示 q颜色映像的建立和修改 n光照控制 2022-3-641(1)视点控制和图形的旋转 n为了使图形的效果更逼真,有时需要从不同的角度观看图形,MATLAB 7语言提供了

17、view、viewmtx和rotate3d等3个命令进行操作。用户可以在命令窗口中调用这3个函数。其中,view函数主要是从不同的角度观察图形;viewmtx给出指定视角的正交转换矩阵;而rotate3d函数可以让用户方便地用鼠标来适时旋转视图。2022-3-642视点控制举例nview函数的使用 :n X,Y=meshgrid(-5:0.2:5);n Z=exp(0.5*(X.2-Y.2);n surf(X,Y,Z)n view(30,60) n鼠标旋转 2022-3-643(2)颜色的使用 n颜色映像理解 qMATLAB 7有一个叫颜色映像的数据结构来代表颜色值。颜色映像定义为一个有3列和

18、若干行的矩阵。利用0到1之间的数,矩阵的每一行都代表了一种色彩。任一行的数字都指定了一个RGB值,即红、黄、蓝3种颜色的强度,形成一种特定的颜色。 2022-3-644颜色映像理解1Red(红)Green(绿)Blue(蓝)颜 色000黑111白100红010绿001蓝110黄101洋红011青蓝2/301天蓝11/20橘黄0.500深红0.50.50.5灰色2022-3-645颜色映像理解2函 数功 能 描 述hsv色彩饱和值(以红色开始和结束)hot从黑到红到黄到白cool青蓝和洋红的色度pink粉红的彩色度gray线性灰度bone带一点蓝色的灰度jethsv的一种变形(以蓝色开始和结束)

19、copper线性铜色度prim三棱镜,交替为红色、橘黄色、黄色、绿色和天蓝色flag交替为红色、白色、蓝色和黑色2022-3-646颜色映像使用 n句句colormap(M)将矩阵将矩阵M作为当前图形窗口所用的颜色映像。例如,作为当前图形窗口所用的颜色映像。例如,colormap(cool)装入了一个有装入了一个有64个输入项的个输入项的cool颜色映像。颜色映像。colormap default装入了默认的颜色映像装入了默认的颜色映像(hsv)。n函数函数plot、plot3、contour和和contour3不使用颜色映像,它们使用列不使用颜色映像,它们使用列在在plot颜色和线形表中的颜

20、色。而大多数其他绘图函数,比如颜色和线形表中的颜色。而大多数其他绘图函数,比如mesh、surf、fill、pcolor和它们的各种变形函数,使用当前的颜色映像。和它们的各种变形函数,使用当前的颜色映像。 2022-3-647颜色映像显示 n可以用多种途径来显示一个颜色映像。其中一个方法是观察颜色映像矩阵的元素:n hot(8)nans =n 0.3333 0 0n 0.6667 0 0n 1.0000 0 0n 1.0000 0.3333 0n 1.0000 0.6667 0n 1.0000 1.0000 0n 1.0000 1.0000 0.5000n 1.0000 1.0000 1.00

21、00n2022-3-648颜色映像的建立和修改 n颜色映像就是矩阵,意味着你可以象其他数组那样对它们进行操作。函数brighten就利用这一点通过调整一个给定的颜色映像来增加或减少暗色的强度。 n用户可以通过生成m3的矩阵mamap来建立自己的颜色映像,并用colormap(mymap)来安装它。颜色映像矩阵的每一个值都必须在0和1之间。如果企图用大于或小于3列的矩阵或者包含着比0小比1大的任意值,函数colormap会提示一个错误然后退出。2022-3-649(3)光照控制 nMATLAB 7语言提供了许多函数在图形中进行对光源的定位并改变光照对象的特征。 函 数 名功 能 描 述camli

22、ght设置并移动关于摄像头的光源lightangle在球坐标下设置或定位一个光源light设置光源lighting选择光源模式material设置图形表面对光照的反映模式2022-3-650光照控制举例n本例首先绘制一个膜面图,然后使用位置向量 0 -2 1 设置光源的方向。 n z=peaks(50);n surf(z)n light(Position,0 -2 1)n2022-3-651绘图(Plot )对象举例n x,y,z = peaks;n c,h = contour(x,y,z);nset(h,LineWidth,3,LineStyle,:)n2022-3-652绘制饼状图nx=1

23、 3 0.5 2.5 2;nexplode=0 1 0 0 0;npie(x,explode)2022-3-653绘制矢量图nX,Y=meshgrid(-2:.2:2);nZ=X.*exp(-X.2-Y.2);nDX,DY=gradient(Z,.2,.2);ncontour(X,Y,Z); nhold on;nquiver(X,Y,DX,DY)2022-3-654绘制误差棒形图nx=0:0.2:4*pi;ny=sin(x);ne=0:1/(length(x)-1):1;nerrorbar(x,y,e)2022-3-655绘制圆柱 球体ncylinder;nt=0:pi/10:2*pi;nX,

24、Y,Z=cylinder(2+cos(t);nsurf(X,Y,Z)nm,n,p=sphere(50);nt=abs(p);nsurf(m,n,p,t)2022-3-656(2) 图形对象属性的获取和设置nget函数 nset函数 n默认属性 2022-3-657get函数 n在MATLAB 7中,使用get函数可以得到对象的属性及其属性值,其通常的调用格式为 : get(handle, PropertyName )。n关于它的详细使用方法,用户可以参见get函数的帮助信息。 2022-3-658set函数n在在MATLAB 7中,使用中,使用set函数可以设置对象的属性函数可以设置对象的属性

25、值,其通常的调用格式如下。值,其通常的调用格式如下。qset(H,PropertyName,PropertyValue)命令设置命令设置PropertyName的属性为的属性为PropertyValue。qset(H,a)命令中,命令中,a为结构型变量,字段名为图形对象的属性为结构型变量,字段名为图形对象的属性名,字段值为映像的属性值。名,字段值为映像的属性值。qset(H,PropertyName1,PropertyValue1,PropertyName2,PropertyValue2,.)命令同时设置多个属性的值。命令同时设置多个属性的值。 2022-3-6591. M文本编辑器的基本知识

26、n M文本编辑器 qM文件的基本属性 qM文件的组成部分 n脚本式M文件 n函数式M文件 2022-3-660(1)M文本编辑器nM文件的语法类似于一般高级语言,是一种程序化的编程语言,但是,与传统的高级语言相比,M文件又有自己的特点。它只是一个简单的ASC型码文本文件,因此,它的语法比一般的高级语言要简单,程序也容易调试,并且有很好的交互性。2022-3-661M文件的基本属性nM文件有两种,一种为脚本式(Script),一种为函数式(Function) 。q函数M文件必须满足一些标准,另外,它们还应该满足一些MATLAB 7的属性。主要有以下几点:n函数式M文件名和出现在文件的第一行的函数

27、名必须相同。实际上,MATLAB 7忽略了第一行的函数名,并且根据存储在硬盘上的文件名来执行函数。 n2022-3-662M文件的组成部分n函数式M文件的组成部分。q调出Medit窗口,在里边输入如下内容:nfunction f = fact(n) %函数的定义行n% Compute a factorial value. %H1行n% FACT(N) returns the factorial of N, %帮助文本n% usually denoted by N!n% Put simply, FACT(N) is PROD(1:N). %注释nf = prod(1:n); % 函数体2022-

28、3-663M文件的组成部分及其功能 nM文件的组成部分及其功能 组 成 部 分描 述函数定义行(仅限于函数式M文件)定义函数名,以及输入和输出变量的数目和顺序H1 行H1行对程序进行概括性的描述,使用help和lookfor命令都可以调出此行帮助文本这是比H1 行更详细的帮助信息,使用help命令时与H1行一起显示函数体函数体是M文件的主要部分,程序的计算和设计都在此实现注释解释程序行的意义2022-3-664(2)脚本式M文件 n用户可以将需要重复输入的所有命令按顺序放到一个扩展名为m的文本文件下,每次运行时只要输入该M文件的文件名即可。n用户自己创建的M文件的文件名要避免与MATLAB 7

29、的内置函数和工具箱中的函数重名,以免发生内置函数被替换的情况。 2022-3-665脚本式M文件举例n本脚本式M文件绘制一个正弦曲线:q %此文件用于绘制【2pi,2pi】区间的正弦曲线图qx=-2*pi:0.05:2*pi;qy=sin(x);qplot(x,y,c+)qlegend(正弦曲线图)2022-3-666(3)函数式M文件n函数式M文件一般都要自带参数,并且有返回结果 。n函数式M文件的第一行都是以function开始,说明此文件是一个函数。函数式M文件中的变量都不是全局变量,仅在函数运行期间有效,函数运行完毕之后,它所定义的变量将从工作区间中清除。2022-3-667函数式M文

30、件举例n例 判断某一年是否为闰年。n解:调出Medit窗口,在里边输入如下内容。n%该函数用于判断某一年是否为闰年n%使用格式为isleapea(y),其中y是用户所要计算的年份nfunction isleapyear(year)nsign=0;nif rem(year,4)=0n sign=sign+1;nendnif rem(year,100)=0n sign=sign-1;n endn if rem(year,400)=0n sign=sign+1;n endn if sign=1n fprintf(%4d year is a leap year.n,year)n else n fprintf(%4d year is not a leap year.n,year)nend2022-3-6682. 控制流n最简单的程序控制就是顺序结构,用户依次输入命令语句即可。nMATLAB 7语言还提供了4种高级的控制结构。它们是:if-el

温馨提示

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

评论

0/150

提交评论