ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:101.73KB ,
资源ID:3821662      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3821662.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第5章 Matlab在图形设计上的应用.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第5章 Matlab在图形设计上的应用.docx

1、第5章 Matlab在图形设计上的应用Matlab在二维图形设计上的应用Matlab不仅具有强大的数值运算功能,也同样具有非常强大的二维和三维图形绘制功能,尤其擅长于将各种科学运算结果的可视化。计算的可视化可以将不直观的数据通过图形来表示,从而发现其中的内在关系。Matlab的图形命令格式简单,可以使用不同的线形,色彩、数据点标记和标注等来修饰。Matlab(Matrix Laboratory)是MathWorks公司开发的,目前国际上最流行、应用最广泛的科学与工程计算软件。它广泛应用于自动控制、数学计算、信号分析、计算机技术、图像信号处理、财务分析、航天工业、汽车工业、生物医学工程、语音处理

2、和雷达工业等各行各业,也是外高校和研究部门进行许多科学研究的重要工具。由于它具有强大的计算和绘图功能、大量稳定可靠的算法库和简洁高效的编程语言,已成为数学工具方面事实上的标准。Matlab不仅具有强大的数值运算功能,也同样具有非常强大的二维和三维图形绘制功能,尤其擅长于将各种科学运算结果的可视化,由于系统采用面向对象的技术和丰富的矩阵运算,所以在图形处理方面即常方便又高效。计算的可视化可以将不直观的数据通过图形来表示,从而发现其中的内在关系。Matlab的图形命令格式简单,可以使用不同的线形,色彩、数据点标记和标注等来修饰。本章专门介绍Matlab在二维、三维图形设计的一些基本命令格式以及一些

3、简单的运用。 5.1 二维图形一、 plot函数plot命令是Matlab中最简单最常用的绘图命令,主要用来绘制二维曲线。命令格式为plot(x,y):x表示要绘制的数据点的横坐标,可省略。如果省略则以数据点的序号绘制横坐标。y表示数据点的数值,以向量形式表示。函数格式:plot(x,y) 其中x和y为坐标向量函数功能:以向量x、y为轴,绘制曲线。【例1】 plot(1,3,4,2,5)%长度为5的向量绘制向量x,y的曲线,大多数情况下,我们要控制曲线的横坐标,这时应该增加一个和y具有相同列数的向量x。【例1】 在区间0X2内,绘制正弦曲线Y=SIN(X),其程序为:x=0:pi/100:2*

4、pi;y=sin(x);plot(x,y) ;grid on%x,y的长度相等【例2】同时绘制正、余弦两条曲线Y1=SIN(X)和Y2=COS(X),其程序为:x=0:pi/100:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2)plot函数还可以为plot(x,y1,x,y2,x,y3,)形式,其功能是以公共向量x为X轴,分别以y1,y2,y3,为Y轴,在同一幅图内绘制出多条曲线。1) 绘制矩阵plot(y)中,y可以是具有多个行的向量,即一个矩阵。绘出的图形是与y的行数相同数目曲线。示例13x=0:.01:2*pi;y=sin(x);2*sin(x);3*s

5、in(x)%y是一个三行的矩阵plot(x,y);grid on 2) 绘制混合曲线当x,y是向量或是矩阵时,分别有下列几情况:1. 如果x是向量,而y是矩阵,则x的长度与矩阵y的行数或必须相等。如果x的长度与y的行数、相等,则向量x和矩阵y的每列向量对应画一条曲线;如果x的长度与y的列数相等,则向量x和矩阵y的每行向量对应画一条曲线;如果y是方阵,则x与每列y画一条曲线。2. 如果x是矩阵,y是向量,规则与上述类似。3. 如果是两个矩阵,并且大小相等,则x,y对应的每列画一条曲线。示例14x1=1 2 3;y1=1 2 3;4 5 6figure,plot(x1,y1);%每行一条曲线y2=

6、1 2;3 4;5 6figure,plot(x1,y2);%每列一条曲线figure,plot(y1,x1);figure,plot(y2,x1);x2=1 1 1;2 2 2figure,plot(x2,y1);%按列与列对应的方式画曲线 plot(x1,y1) plot(x1,y2) plot(y1,x1) plot(y2,x1)plot(x2,y1)3) 绘制多条曲线plot(x1,y1,x2,y2,.),这个命令相当于plot(x1,y1)+plot(x2,y2)+;将这些命令写在同一个函数里,Matlab自动以不同的颜色来绘制曲线。不同的矩阵,维数可以不同。示例15x=0:.1:2

7、*pi;plot(x,sin(x),x,cos(x),x,sin(3*x);%在同一幅图中画三条曲线4) 绘制复数plot(z)中z为复向量是,plot(z)与plot(real(z),imag(z)是等效的,以实部为横坐标,虚部为纵坐标。示例16x2=1 1 1;2 2 2y1=1 2 3;4 5 6z=x2+y1*iplot(z)%以实部为横坐标,虚部为纵坐标(一)线型与颜色格式:plot(x,y1,cs,.)其中c表示颜色, s表示线型。(二)图形标记在绘制图形的同时,可以对图形加上一些说明,如图形名称、图形某一部分的含义、坐标说明等,将这些操作称为添加图形标记。添加图名的语句是titl

8、e(s);s就是图名,是一个字符串,可以是中文的。title(加图形标题); %绘制一个周期的正弦曲线,并添加标题”sin(x)的图像”x=0:.1:2*pi;y=sin(x);plot(x,y);title(sin(x)的图像)%添加标题添加坐标轴名:xlabel(s),ylabel(s),分别添加横纵坐标轴名称。xlabel(加X轴标记); ylabel(加Y轴标记); x=0:.1:2*pi;y=sin(x);plot(x,y);title(sin(x)的图像)%添加标题xlabel(x coordinate)%添加横坐标ylabel(y coordinate)%添加纵坐标 text(X

9、,Y,添加文本); (三)设定坐标轴用户若对坐标系统不满意,可利用axis命令对其重新设定。axis(xmin xmax ymin ymax) 设定最大和最小值axis (auto) 将坐标系统返回到自动缺省状态axis (square) 将当前图形设置为方形axis (equal) 两个坐标因子设成相等axis (off) 关闭坐标系统axis (on) 显示坐标系统【例4】 在坐标范围0X2,-2Y2内重新绘制正弦曲线,其程序为:x=linspace(0,2*pi,60);生成含有60个数据元素的向量Xy=sin(x);plot(x,y);axis (0 2*pi -2 2);设定坐标轴范

10、围(四)加图例给图形加图例命令为legend。该命令把图例放置在图形空白处,用户还可以通过鼠标移动图例,将其放到希望的位置。格式: legend(s,pos),s是字符串,pos是位置,表 pos取值对应的实际位置pos012341位置自动取最佳位置右上角(默认)左上角左下角右下角图右侧示例 在图形窗口添加文字注释x=0:.1:2*pi;plot(x,sin(x);hold onplot(x,cos(x),o);title(y1=sin(x),y2=cos(x);%添加标题xlabel(x)%添加坐标名legend(sin(x),cos(x),4)%在图的右下角添加注释text(pi,sin(

11、pi),x=pi);%在pi,sin(pi)处添加文字注释(一)subplot(m,n,p)该命令将当前图形窗口分成mn个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。【例6】 在一个图形窗口中同时绘制正弦、余弦、正切、余切曲线,程序为:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps); eps为系统内部常数ct=cos(x)./(sin(x)+eps);subplot(2,2,1); 分成22区域且指定1号为活动区plot(x,y);title(sin(x); axis (0 2*pi -

12、1 1); subplot(2,2,2);命令为subplot(m,n,k)%使mn幅子图中的第k幅为当前图示例31演示子图命令x=0:.1:2*pi;subplot(2,2,1);%将绘图区分为22的区域,当前为第一幅plot(x,sin(x);subplot(4,4,3)%将绘图区分为44的区域,当前为第三幅plot(x,sin(2*x)subplot(4,4,4)%将绘图区分为44的区域,当前为第四幅plot(x,sin(3*x)subplot(4,4,7)%将绘图区分为44的区域,当前为第七幅plot(x,sin(4*x)subplot(4,4,8)%将绘图区分为44的区域,当前为第八

13、幅plot(x,sin(5*x)subplot(2,2,3);%将绘图区分为22的区域,当前为第三幅plot(x,cos(x),o);subplot(2,2,4);%将绘图区分为22的区域,当前为第四幅plot(x,cos(2*x),.);结果如下(二)多图形窗口需要建立多个图形窗口,绘制并保持每一个窗口的图形,可以使用figure命令。每执行一次figure命令,就创建一个新的图形窗口,该窗口自动为活动窗口,若需要还可以返回该窗口的识别号码,称该号码为句柄。句柄显示在图形窗口的标题栏中,即图形窗口标题。用户可通过句柄激活或关闭某图形窗口,而axis、xlabel、title等许多命令也只对活

14、动窗口有效。重新绘制上例4个图形,程序变动后如下:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps);H1=figure; 创建新窗口并返回句柄到变量H1plot(x,y); 绘制图形并设置有关属性title(sin(x); axis (0 2*pi -1 1); H2=figure; 创建第二个窗口并返回句柄到变量H2plot(x,z); 绘制图形并设置有关属性title(cos(x);(三)hold命令若在已存在图形窗口中用plot命令继续添加新的图形内容,可使用图形

15、保持命令hold。发出命令hold on后,再执行plot命令,在保持原有图形或曲线的基础上,添加新绘制的图形。阅读如下程序:x=linspace(0,2*pi,60);y=sin(x);z=cos(x);plot(x,y,b); 绘制正弦曲线hold on; 设置图形保持状态plot(x,z,g); 保持正弦曲线同时绘制余弦曲线axis (0 2*pi -1 1); legend(cos,sin);hold off 关闭图形保持三、 函数f(x)曲线fplot函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。fplot函数格式:fplot(fname,lims,tol)其中fnam

16、e为函数名,以字符串形式出现,lims为变量取值范围,tol为相对允许误差,其其系统默认值为2e-3。例:fplot(sin(x),0 2*pi,-+) fplot(sin(x),cos(x),0 2*pi,1e-3,) 同时绘制正弦、余弦曲线为绘制f(x)=cos(tan(x)曲线,可先建立函数文件fct.m,其内容为:function y=fct(x) y=cos(tan(pi*x);用fplot函数调用fct.m函数,其命令为:fplot(fct,0 1,1e-4)5.2 特殊坐标图形一、 对数坐标图形(一)loglog(x,y) 双对数坐标【例7】 绘制y=|1000sin(4x)|+

17、1的双对数坐标图。程序为:x=0:0.1:2*pi;y=abs(1000*sin(4*x)+1;loglog(x,y); 双对数坐标绘图命令(二)单对数坐标以X轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogx(x,y); 单对数X轴绘图命令同样,可以以Y轴为对数重新绘制上述曲线,程序为:x=0:0.01:2*piy=abs(1000*sin(4*x)+1semilogy(x,y); 单对数Y轴绘图命令二、 极坐标图函数polar(theta,rho)用来绘制极坐标图,theta为极坐标角度,rho为极坐标半径【例8】 绘制s

18、in(2*)*cos(2*)的极坐标图,程序为:theta=0:0.01:2*pi;rho=sin(2*theta).*cos(2*theta);polar(theta,rho); 绘制极坐标图命令title(polar plot);5.3 其它图形函数除plot等基本绘图命令外,Matlab系统提供了许多其它特殊绘图函数,这里举一些代表性例子,更详细的信息用户可随时查阅在线帮助,其对应的M-file文件存放在系统matlabtoolboxmatlab目录下。5.3 其它图形函数一、阶梯图形函数stairs(x,y)可以绘制阶梯图形,如下列程序段:x=-2.5:0.25:2.5;y=exp(-

19、x.*x);stairs(x,y); 绘制阶梯图形命令title(stairs plot);5.3 其它图形函数二、条形图形函数bar(x,y)可以绘制条形图形,如下列程序段将绘制条形图形x=-2.5:0.25:2.5;y=exp(-x.*x);bar(x,y); 绘制条形图命令5.3 其它图形函数三、填充图形fill(x,y,c)函数用来绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量。字符 c 规定填充颜色,其取值前已叙述。下述程序段绘制一正方形并以黄色填充:5.3 其它图形函数x=0 1 1 0 0; 正方形顶点坐标向量y=0 0 1 1 0;fill(x,y,y);绘制并以黄色填

20、充正方形图再如:x=0:0.025:2*pi;y=sin(3*x);fill(x,y,0.5 0.3 0.4); 颜色向量Matlab系统可用向量表示颜色,通常称其为颜色向量。基本颜色向量用r g b表示,即RGB颜色组合;以RGB为基本色,通过 r,g,b在01范围内的不同取值可以组合出各种颜色。二维绘图函数小结plot 二维图形基本函数fplot f(x)函数曲线绘制fill 填充二维多边图形polar 极坐标图bar 条形图loglog 双对数坐标图semilogx X轴为对数的坐标图semilogy Y轴为对数的坐标图stairs 阶梯形图axis 设置坐标轴clf 清除图形窗口内容c

21、lose 关闭图形窗口5.4 三维图形一、 plot3函数最基本的三维图形函数为plot3,它是将二维函数plot的有关功能扩展到三维空间,用来绘制三维图形。函数格式:plot3(x1,y1,z1,c1,x2,y2,z2,c2,) 其中x1,y1,z1表示三维坐标向量,c1,c2表示线形或颜色。函数功能:以向量x,y,z为坐标,绘制三维曲线。【例9】 绘制三维螺旋曲线,其程序为:t=0:pi/50:10*pi;y1=sin(t),y2=cos(t);plot3(y1,y2,t);title(helix),text(0,0,0,origin);xlabel(sin(t),ylabel(cos(t

22、),zlabel(t);grid;二、mesh函数mesh函数用于绘制三维网格图。在不需要绘制特别精细的三维曲面结构图时,可以通过绘制三维网格图来表示三维曲面。三维曲面的网格图最突出的优点是:它较好地解决了实验数据在三维空间的可视化问题。函数格式:mesh(x,y,z,c)其中x,y控制X和Y轴坐标,矩阵z是由(x,y)求得Z轴坐标,(x,y,z)组成了三维空间的网格点;c用于控制网格点颜色。三、surf函数surf用于绘制三维曲面图,各线条之间的补面用颜色填充。surf函数和mesh函数的调用格式一致。函数格式: surf (x,y,z)其中x,y控制X和Y轴坐标,矩阵z是由x,y求得的曲面

23、上Z轴坐标。四、视点视点位置可由方位角和仰角表示。方位角又称旋转角为视点位置在XY平面上的投影与X轴形成的角度,正值表示逆时针,负值表示顺时针。仰角又称视角为XY平面的上仰或下俯角,正值表示视点在XY平面上方,负值表示视点在XY平面下方。从不同视点绘制三维图形的函数为view。 view(az,el)中的az为方位角,el为仰角。通过系统提供的多峰函数peaks的绘制例子,可进一步说明视点对图形的影响,以及view(az,el)函数的使用。【例12】 不同视角图形p=peaks; 系统提供的多峰函数subplot(2,2,1);mesh(peaks,p);view(-37.5,30); 指定子

24、图1的视点title(azimuth=-37.5,elevation=30)subplot(2,2,2);mesh(peaks,p);view(-17,60); 指定子图2的视点title(azimuth=-17,elevation=60)五、等高线图等高线图可通过函数contour3绘制。【例13】 多峰函数peaks的等高线图x,y,z=peaks(30);contour3(x,y,z,16);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(contour3 of peaks)5.5 图形句柄一、句柄在Matlab系统中,绘图命令产生的

25、每一个部分称为图形对象,系统在创建每一个对象时,都为该对象分配唯一的一个值,称其为句柄,因此句柄就是图形对象标识符。对象、句柄以及图形对象等概念其实质是统一的,系统将每一个对象按树型层次结构组织起来,这些对象包括根对象,通常为计算机屏幕、图形窗口、坐标系统、线条、曲面、文本串、用户界面控制等。根对象可包含一个或多个图形窗口对象,而一个图形窗口对象又可包含一组或多组坐标系子对象,线条、文本等其它对象都是坐标系的子对象。所有创建对象的函数当父对象不存在时,都会自动创建它。计算机屏幕作为根对象自动建立,其句柄值为0。而Hf_f=figure命令则建立图形窗口对象,并返回它的句柄值给变量Hf_f。图形

26、窗口的句柄为一整数,并显示在该窗口的标题栏,其它图形对象的句柄为浮点数,Matlab提供了一系列与句柄操作有关的函数,如gcf 、gca等。为便于识别,用大写字母开头的变量表示句柄,如Hf_f等。二、对象属性所有图形对象都具有控制对象显示的属性。这些属性既包括对象的一般信息,如对象类型、对象的父对象及子对象等,也包括对象的一些特定信息,如坐标系对象的刻度等。用户可以获取、设置对象属性,以达到控制对象的目的。当创建一个对象时,系统用一组默认属性值定制对象,用户梢酝get命令获取这些属性值,同时也可通过set命令重新设置对象属性。set命令格式为:set(H,name,value,) 将图形对象H

27、的name属性设置为value其中H为句柄,name为属性名,value为name的属性值。5.5 图形句柄用set命令可以方便地设置图形对象属性,如下列程序段就是通过属性来定制图形。x=0:0.1:4*pi;H=plot(x,sin(x); 返回正弦曲线句柄Hset(H,LineStyle,*,LineWidth,0.1);设置正弦曲线线型与线宽其中LineStyle为线型属性,LineWidth为线宽属性。5.5 图形句柄利用get(H)命令可以返回当前句柄H对象的属性。键入命令:get(H) 系统返回当前图形对象的有关属性:象H=get(0,CurrentFigure)则返回根对象的Cu

28、rrentFigure的属性值,即当前图形窗口的句柄,相当于函数gcf。get(gcf,Children)则返回当前坐标系对象的句柄;类似的操作用户可在使用Matlab的过程中不断积累。5.5 图形句柄三、句柄应用利用句柄操作的有关函数,用户可以查找、访问图形对象,以达到定制对象属性,改变对象显示效果的目的。x=-pi:pi/20:pi;y=sin(x);z=cos(x);plot(x,y,r,x,z,g);Hl_lines=get(gca,Children); 获取正、余曲线句柄向量Hl_linesfor k=1:size(Hl_lines) if get(Hl_lines(k),Color

29、)=0 1 0 0 1 0为绿颜色向 Hl_green=Hl_lines(k) 返回绿色线条句柄 endend5.6 动画设计如果将Matlab产生的多幅图形保存起来,并利用系统提供的函数进行播放,就可产生动画效果。系统所提供的动画功能函数有getframe、moviein和movie。getframe函数getframe函数可将当前图形窗口作为一个画面取下并保存,格式为:m=getframe它将每一帧画面信息数据截取下来整理成列向量。该函数截取图形的点阵信息,图形窗口的大小,对数据向量的大小影响较大,窗口越大,所需存储容量越大。而图形的复杂性对数据容量要求没有直接的关系。5.6 动画设计moviein函数函数m=moviein(n)用来建立一个足够大的n列的矩阵m,用来保存n幅画面的数据,以备播放。movie函数movie(m,n)以每秒n幅图形的速度播放由矩阵m的列向量所组成的画面。5.6 动画设计【例14】 播放一个不断变化的眼球程序段。m=moviein(20); 建立一个20个列向量组成的矩阵for j=1:20 plot(fft(eye(j+10) 绘制出每一幅眼球图并保存到m矩阵中 m(:,j)=getframe;endmovie(m,10);以每秒10幅的速度播放画面5.6 动画设计再如下述程序段播放一个直径不断变化的球体。n=30x,y,z

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1