MATLAB程序设计语言3.ppt_第1页
MATLAB程序设计语言3.ppt_第2页
MATLAB程序设计语言3.ppt_第3页
MATLAB程序设计语言3.ppt_第4页
MATLAB程序设计语言3.ppt_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB 程序设计语言,任课教师:李靖 博士(讲师),Email:,研究方向:无线通信,2,两个大家关心的问题,如何学习Matlab课程? 熟悉基本命令的使用以及用matlab可以解决的一些数学问题。(工程与数学,matlab数学手册) 如何对待考试成绩? 1. 从事非技术类工作(市场和公务员等),及格就好; 2. 从事技术类工作(研发和读研等),重视实验课和课外学术活动,考试成绩越高越好。,3,Chapter3 Matlab图形系统,Matlab提供的图形函数包含有四类: 通用图形函数 二维图形函数 三维图形函数 特殊图形函数,4,本章内容,简单图形绘制 图形标注 对数和极坐标系图形绘制 复杂图形绘制 坐标轴控制 颜色控制 高级绘图 图形函数,5,简单图形绘制,二维绘图指令plot plot是用来划函数x对函数y的二维图。 plot可以在一个图上划数条曲线,且以不同的符号及颜色来标示曲线。 例1:画出一条从0到2正弦曲线,6,简单图形绘制,若要画出多条曲线,只需将座标对依次放入plot函数即可: plot(x, sin(x), x, cos(x); 若要改变颜色,在座标对後面加上相关字串即可: plot(x, sin(x), c, x, cos(x), g); 可用subplot来同时画出数个小图形於同一个视窗之中 例2:画多个小图在一个视窗内,7,plot绘图函数的参数,8,图形标注,加图形标题 title 坐标轴标记 xlabel, ylabel 图中曲线说明 legend 文本标注 text, gtext 例3: 标题、坐标轴标记以及插图说明使用示例,9,对数和极坐标系图形绘制,对数坐标图:loglog, semilogx, semilogy 极坐标图:polar 例4: 对数坐标系中曲线的绘制 (semilogtest.m) 例5: 极坐标系中曲线的绘制 (polartest.m),10,复杂图形绘制,同一个窗口绘制多条曲线 方法1.将曲线数据保存在nm的矩阵y中,x为相 应的x轴向量n1或1n,用plot(x,y)在 同一个图形窗口中绘制m条曲线。适用于 由其它软件产生数据,由load命令读入 MATLAB,并绘制曲线。(e4.m) 方法2.在一个plot函数中分别指定每条曲线的数 据。 (e5.m),11,方法3.hold on 先在窗口绘制第一条曲线,然后hold on,使之保持原有图形,然后以同样的方法绘制其余的曲线。可用这种方法在绘制曲线后同时加注标注。(e6.m) 方法4.plotyy 绘制双y轴图形,即在同一张图上表示两条曲线,可拥有各自的y轴。(e7.m),12,坐标轴控制,axis 控制绘图的横轴及纵轴比例 (axistest.m) box 控制图形的边框 box off 关闭图形边框,只显示x-y轴 (e8.m),13,颜色控制,绘制曲线时可直接指定曲线的颜色 在标注文本title,xlabel,ylabel,zlabel,text命令中,可利用文本特性Color来指定文本的颜色。 利用colormap函数可改变每种颜色的色调。,14,颜色控制,例6:产生蓝色的曲线、紫色的标题、红色的x、y轴标注以及黑色的曲线标注 x = -pi:pi/50:pi; y = exp(-2*sin(x); plot(x, y, b-); grid on; title(y = e-2sin(x), Color, m); ylabel(y轴标注, color, r); xlabel(x轴标注, color, r); text(-0.6, 3.4, leftarrow 曲线标注, color, k); 画出的曲线如图:,15,颜色控制,例7: 人体脊椎图 调用MATLAB专门提供的spine图像 colormap(default); load spine; image(X); colormap(bone);,16,高级绘图,区域、条形及饼图:bar barh bar3 bar3h pie pie3 area 等高线绘图:contour contour3 contourf 方向与速度绘图:comet comet3 compass feather quiver quiver3 离散数据绘图:stem stem3 stairs 柱状图:hist histc rose 多边形和曲面:cylinder sphere ellipsoid polyarea fill fill3 ribbon slice waterfall mesh meshc meshz meshgrid surf surfc 散布图:plotmatrix scatter scatter3,17,bar/barh/bar3/bar3h,在二维平面上绘制条形图,以条形块表示数值的大小。barh用于绘制水平的条形图。 常用格式:bar(Y), bar(x,y), bar(x, y, LineSpec), LineSpec用于指定条形块的颜色 例10: 利用随机函数rand产生一个矩阵,从而得到复杂的条形图。(bartest.m),18,pie/pie3,绘制饼图,常用格式为pie(x),可按向量x中的值的大小绘制。pie(x,explode)可利用explode指定分离出的切片。 例12: 绘制饼图:pietest.m,19,area,功能:二维图形的填充区域 格式:area(Y)等。图形的高度由Y的每一行的和构成,x轴最大值为Y的行数,然后绘出Y每一列和的区域图形。 例:areatest.m,20,comet/comet3,功能:绘制彗星图:表示数据的轨迹,其头部用圆圈表示,尾部用直线表示。 格式:comet(y) comet(x,y) comet(x,y,p) 例:comettest.m,21,compass,功能:绘制罗盘图 格式:compass(U,V),箭头起点在原点,终点由(U(i),V(i)确定。 cmopass(Z),Z为复数,箭头终点由(real(Z),imag(Z)确定。 例:compasstest.m,22,stem/stem3,功能:绘制出离散序列数据 格式:stem(Y):按离散竖条形式显示Y stem(X,Y):指定x轴的坐标X 例:stemtest.m,23,hist,在二维平面上绘制柱状图,用来表示数据值的分布情况。 常用格式:hist(y, x):以向量x为间隔中心,统计每个间隔中y的元素个数,并以柱状图表示 例11:绘制柱状图 x = -2.9:0.1:2.9; y = randn(10000,1); hist(y,x); title(柱状图); 画出的曲线如图:,24,sphere,在三维空间上画一个球。 sphere(n)绘制出单位半径的球,其中球由nn块面组成。 例17: 绘制球形 sphere(100); axis equal; 画出的曲线如图:,25,cylinder,在三维空间上绘制柱体,常用格式为 cylinder cylinder(r), 其中r用于指定轮廓曲线 例18: 绘制简单柱体图(cylindertest1.m) 例19: 绘制复杂柱体图(cylindertest2.m),26,meshgrid,产生x、y轴向的网格数据。一般格式为 X,Y = meshgrid(x,y), 其中向量x,y分别指定x轴向和y轴向的数据点。当x为n维向量、y为m维向量时,X,Y均为mn的矩阵,X(i,j)和Y(i,j)共同指定了平面上的一点。 当xy轴取同一向量时,可简写为 X,Y = meshgrid(x) 三维的情况:X,Y,Z = meshgrid(x,y,z),27,meshgrid,例: X,Y = meshgrid(1:3,10:14); 运行结果: X = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 Y = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14,28,contour/contour3/contourf,绘制矩阵的等高线/3维等高线/并填充 格式contour(Z):绘制矩阵Z的等值线,其值的间隔自动选取。 例:contourtest.m,29,mesh/meshc,绘制三维空间上的网格曲线: mesh(x, y, z) meshc函数可同时绘制出轮廓图(即等高线) peaks(X,Y):可产生一个凹凸有致的曲面 例15: 多峰函数的网格曲线的绘制 (meshtest.m),30,surf/surfc,绘制二维曲面,常用格式surf(x, y, z) surfc函数可同时绘制出等高线图 例16: 多峰函数的曲面的绘制 (surftest.m),31,plot3,绘制三维图形,常用格式 plot3(x, y, z, LineSpec) 例13: 简单三维曲线的绘制(plot3test1.m) 例14: 多峰函数的三维曲线绘制 (plot3test2.m),32,图形函数,基本图形和图形操作 图形注释 坐标系控制 其它重要函数,33,基本图形和图形操作,plot loglog semilogx, semilogy polar plotyy figure close clf gcf refresh,34,plot,功能:线性二维图形 格式: plot(Y) plot(X1, Y1, ) plot(X1, Y1, LineSpec, ) plot(, PropertyName, PropertyValue,) h = plot(),35,plot,注释: LineSpec可指定绘图使用的线型、颜色和标记。P125 在利用plot函数绘制多条曲线时,plot自动循环的采用颜色板中的各种颜色,颜色板可用colormap函数设置不同的颜色次序特性。 例:(plottest.m),36,loglog,功能:对数坐标图形 格式: loglog(Y) loglog(X1, Y1, ) loglog(X1, Y1, LineSpec, ) loglog(, PropertyName, PropertyValue, ) h = loglog() 说明: 类似于plot,绘图时以对数坐标来标注,对于变化范围较大的曲线,容易绘出直观的图形。,37,semilogx/semilogy,功能:半对数坐标图形 格式: semilogx(Y) semilogy(Y) semilogx(X1, Y1, ) semilogy(X1, Y1, ) semilogx(X1, Y1, LineSpec, ) semilogy(X1, Y1, LineSpec, ) semilogx(, PropertyName, PropertyValue, ) semilogy(, PropertyName, PropertyValue, ) h = semilogx() h = semilogy(),38,semilogx/semilogy,说明: 类似于plot和loglog,绘图时X轴或者Y轴采用对数表示。对于变化范围较大的曲线,容易绘出直观的图形。,39,polar,功能:绘制极坐标图形 格式: polar(theta, rho) polar(theta, rho, LineSpec) 其中,theta表示极坐标角度,rho为极径, LineSpec可指定曲线的线型、颜色和标记 说明: 可在笛卡尔坐标平面内绘制出以极坐标形式表示的曲线,并可绘制出极坐标栅格线。,40,plotyy,功能:绘制左右边都包含Y轴的图形 格式: plotyy(X1, Y1, X2, Y2) plotyy(X1, Y1, X2, Y2, function) plotyy(X1, Y1, X2, Y2, function1, function2) AX, H1, H2 = plotyy(),41,plotyy,说明: plotyy(X1, Y1, X2, Y2)可绘制出(X1, Y1)的曲线,其Y轴标记在左边,同时绘制出(X2, Y2)的曲线,其Y轴标记在右边。 plotyy(X1, Y1, X2, Y2, function)可利用由字符串function指定的函数取代默认的plot函数,可取plot、semilogx、semilogy、loglog、stem及用户自己编写的M函数文件。(plotyytest.m),42,figure,功能:建立图形(窗口) 格式: figure figure(h) figure(PropertyName, PropertyValue, ) h = figure() 说明: figure可打开一个新的图形窗口,以供后续绘图命令输出图形。但是没有打开图形窗口时,直接使用绘图命令可自动打开一个图形窗口。如果已经打开,则在当前窗口绘制图形。 图形特性及其取值参见表3.4(教材P.128),43,close,功能:关闭图形窗口,即删除指定的图形 格式: close close all close(h) close all hidden close name status = close() 说明: close删除当前的图形;close(h) 删除句柄为h的图形; close name删除由name指定的图形;close all删除所有(不包含句柄隐藏的)图形;close all hidden删除所有(包含句柄隐含的)图形;status = close()删除图形外,可得到删除操作的状态:删除成功1,删除失败0。,44,clf,功能:清除当前图形窗口 格式:clf, clf reset 说明: clf 从当前图形中删除所有的图形对象,但不删除这一图形窗口(不同于close) clf reset 可在当前图形中删去所有的图形对象,并将所有的图形特征(Position除外)复位到缺省值。(figure_clf_close_test.m),45,gcf,功能:获得当前图形的句柄 格式:h = gcf 说明: 当系统中尚未打开图形窗口时,h = gcf可建立一个图形窗口,并返回句柄h。有时不存在图形窗口时,不希望建立图形,可输入h=get(0, CurrentFigure),可得到一个空阵列h。,46,refresh,功能:重画当前图形 格式:refresh, refresh(h) 说明: refresh可重画当前图形 refresh(h)可重画由h指定的图形,47,图形注释,title text gtext xlabel, ylabel, zlabel legend,48,title,功能:给当前坐标系加上标题 格式: title(string) title(fname) title(.,PropertyName,PropertyValue,.) h = title(.) 说明: 每一个坐标系的图形都可以有一个标题,位于图顶部的居中的位置。 title(fname)可执行指定函数frame时产生的字符串用作标题 例:(titletest.m),49,text,功能:在当前坐标系中建立文本对象 格式: text(x, y, string) text(x, y, z, string) text(., PropertyName, PropertyValue, .) h = text(.) 说明: 可将指定的字符串放在图形的指定位置。 text函数的文本特性,参见表3.5 (教材P.134) Tex字符集给出了常用的希文字母以及一些数学符号,参见表3.6(教材P.136),50,gtext,功能:利用鼠标在二维图形上放置文本 格式:gtext(string), h = gtext(string) 说明: gtext(string) 可利用鼠标将指定字符串放在图上的任意位置;(e7.m) h = gtext(string)可得到该文本图形对象的句柄。 字符串可采用Tex字符集,也可控制正斜体、上下标等。,51,xlabel/ylabel/zlabel,功能:x, y, z轴的标记 格式: xlabel(string) xlabel(fname) xlabel(.,PropertyName,PropertyValue,.) h = xlabel(.) ylabel,zlabel有类似的格式 说明: 坐标系中给x, y, z轴加上标记,52,legend,功能:给每个坐标系加上插图说明 格式: legend(string1,string2,.) legend(strings) legend(off) legend(h,.) legend(.,pos) h = legend(.),53,legend,说明: legend(.,pos)可利用pos参数指定插图说明的位置: pos=-1 插图说明放在坐标系边框外的右边 pos=0 插图说明放在坐标系内部 pos=1 插图说明放在坐标系右上角(缺省情况) pos=2 插图说明放在坐标系左上角 pos=3 插图说明放在坐标系左下角 pos=4 插图说明放在坐标系右下角 pos=x,y 明确指定插图说明框左下角的位置 legendtest.m,54,坐标系控制,subplot hold grid axes axis box,55,subplot,功能:建立和控制多个坐标系 格式: subplot(m,n,p) subplot(h) subplot(Position,left bottom width height) h = subplot(.) 说明:可将图形窗口分成矩形窗格,并按行编号,每个窗格上可建立一个坐标系,后续的绘图命令会在当前窗格上绘制图形,56,hold,功能:在图形窗口中保持当前图形 格式:hold on, hold off, hold 说明: hold 函数可决定所绘制的图形是添加到图形上,还是取代已绘制的图形。可在两状态之间切换,其状态可由ishold函数决定。 hold on 函数表示保持当前的图形,实现一幅图中绘制多条曲线。 hold off 关闭保持特性,每次绘图时会自动清除以前已绘制的图形。,57,grid,功能:给图形加上栅格线 格式:grid on, grid off, grid 说明: grid on 给当前坐标系加上栅格线 grid off 从当前坐标系中删去栅格线 grid 在两种状态(on, off)之间切换,58,axes,功能:建立坐标系图形对象(一般不直接使用) 格式: axes axes(PropertyName,PropertyValue,.) axes(h) h = axes(.) 说明: 在当前图形窗口中建立坐标系图形对象,可采用指定的特征值。坐标系特性可用来控制绘图外形和绘图对象,参见表3.7(教材P.140),59,axis,功能:坐标轴刻度 格式: axis(xmin xmax ymin ymax) axis(xmin xmax ymin ymax zmin zmax cmin cmax) v = axis axis auto %自动方式,由绘图数据确定轴范围 axis manual %冻结当前坐标轴的刻度范围,如果设置了hold on ,绘制另一图形时,坐标轴范围不会改变 说明: 通常通过设置坐标系特性获得。利用axis可清晰的显示出图中的局部信息。 例: (axistest1.m),60,box,功能:控制坐标系边框 格式:box on, box off, box 说明: box on 可在当前坐标系中显示一个边框,是缺省状态 box off 可去掉边框,图中只含坐标轴 box 在两种状态之间切换,61,其它重要函数(P143),get set rotate colormap,62,get,功能:获得图形对象的特性 格式: get(h) get(h,PropertyName) P = get(H,pn) a = get(0,Factory) a = get(0,FactoryObjectTypePropertyName) a = get(h,Default) a = get(h,DefaultObjectTypePropertyName),63,set,功能:设置图形对象的特性 格式: set(H,PropertyName,PropertyValue,.) set(H,a) set(H,pn,pv.) set(H,pn,P) 说明: 对由H指示的对象设置指定的特性,H可为向量,64,rotate,功能:沿着指定方向旋转对象 格式: rotate(h,direction,alpha) rotate(,origin) 说明: 可在三维空间上按右手准则旋转图形对象(P145例),65,colormap,功能:设置和获取当前图形的颜色板 格式: colormap(map) colormap(default) cmap = colormap 说明: 颜色板是一个m3的矩阵,其值在0.0到1.0之间,分别表示红、绿、蓝三种颜色,颜色板的每一行定义了一种颜色。,66,colormap,注释 1. 指定颜色板 MATLAB提供了许多颜色板函数,每一个函数可以产生多种颜色。例如: colormap(hsv(128) 可产生包含128种颜色的hsv颜色板。 若不指定尺寸,则会产生与当前颜色板同等数量的颜色。,67,colormap,注释 2. 支持的颜色板(P.146) MATLAB提供的颜色板包括: autumn, bone, colorcube, cool, copper, flag, gray, hot, hsv, jet, line, pink, prism, spring, summer, white, winter (e10.m),68,上机作业,第二章:1 、2、3、5、8 第三章:2、5、7、8、9 说明:文件夹名为姓名+学号后4位 文件名写法为:Ch2Ex1,69,Class Over!,70,例1:画出一条从0到2正弦曲线:,从0到2正弦曲线的产生,x = linspace(0, 2*pi, 100); % 100个点的x坐标 y = sin(x); % 对应的y坐标 figure(1); plot(x, y, r-); (P125) grid on;,画出的正弦曲线如图:,返回,71,例2:画常用三角函数曲线:,% File: e1.m x = 0:pi/50:2*pi; k = 1 26 51 76 101; x(k) = ; %删除正切余切的奇异点 figure(1); subplot(2,2,1); plot(x, sin(x); grid on; subplot(2,2,2); plot(x, cos(x); grid on; subplot(2,2,3); plot(x, tan(x); grid on; subplot(2,2,4); plot(x, cot(x); grid on;,返回,72,例3 标题、坐标轴标记以及插图说明使用示例,% File : e2.m x = linspace(0, 2*pi, 100); plot(x, sin(x), m*, x, cos(x), y.), grid on; legend(y = sin(x),y = cos(x); title(y = sin(x) 和 y = cos(x) 的曲线); xlabel(x), ylabel(y); text(pi, 0.1, leftarrow sin(alpha) text(pi/4-0.05, -0.1, cos(alpha)rightarrow) 画出的曲线如图: 注意Tex字符集和各种字体格式(P136),返回,73,例4: 对数坐标系中曲线的绘制,% File: e3.m x = 0.01:0.1:100; y = log10(x); subplot(2,1,1); plot(x, y, b-); grid on; title(笛卡尔坐标系中的 y = log_10(x) 曲线), ylabel(y); subplot(2,1,2); semilogx(x, y, b-);, grid on; title(半对数坐标系中的 y = log_10(x) 曲线); xlabel(x), ylabel(y);

温馨提示

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

评论

0/150

提交评论