




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 Matlab绘图功能5.1 二维图形的绘制5.1.1 常用的二维图形绘图函数基本的二维绘图函数有plot 绘制2维曲线;title 给图形加标题;grid 显示网格线;xlabel 给x轴加标记;ylabel 给y轴加标记;text 在坐标图中加入文字注释。例:画出函数,其中从0到步进的曲线图。X=0:pi/100:2*pi;Y=sin(X);plot(X,Y);% 作图grid on;% 网格线显示,若该为grid off则不显示网格ylabel(y=sin 2pi x);% Y轴标注,可以有汉字xlabel(x);% X轴标注,可以有汉字title(function plot y=sin 2pi x);% 图标题text(0.5,sin(0.5),leftarrow sin 2 pi 0.5);% text()可以在指定坐标处写文字标注text(2.3,sin(2.3),leftarrow sin 2 pi 2.3);% 所有标注中均可使用汉字% 对于特殊符号,如希腊字母,箭头等需要采用LaTeX格式结果如图5.1 所示。图5.1 基本的二维绘图函数用法5.1.2 图形的线型和颜色控制在命令plot的高级用法中,可以设置作图的线型,标记类型,线和标记的颜色,粗细等特征。用命令doc LineSpec和doc plot可以查询详细的帮助文档。线型的定义如下:-solid line (default)实线-dashed line虚线:dotted line虚点连线-.dash-dot line点划线常用标记的定义为:+plus sign十字标记ocircle小圈标记*asterisk星号标记.point黑点标记xcross叉号标记ssquare方框标记ddiamond菱形标记upward pointing triangle 上三角标记vdownward pointing triangle下三角标记right pointing triangle 右三角标记 x,y=meshgrid(-3:1:3, -2:1:2)x = -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3 -3 -2 -1 0 1 2 3y = -2 -2 -2 -2 -2 -2 -2 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 2 2然后将得到的和代入中计算出。即 z=(x.2-2*x).*exp(-x.2 -y.2 -x.*y)z = 0.0000 0.0000 0.0027 0 -0.0498 0 0.0027 0.0000 0.0073 0.1494 0 -0.3679 0 0.0027 0.0019 0.1465 1.1036 0 -0.3679 0 0.0004 0.0137 0.3983 1.1036 0 -0.0498 0 0.0000 0.0137 0.1465 0.1494 0 -0.0009 0 0.0000最后用mesh(x,y,z);作出三维表面网格图。得到结果如图5.14所示。图5.14 用mesh进行的三维表面网格作图实例为了使得作图更加精细,可以减小生成,网格的步进,当然,这是以增加计算量和内存需求为代价的。即x,y=meshgrid(-3:0.1:3, -2:0.1:2); z=(x.2-2*x).*exp(-x.2 -y.2-x.*y);mesh(x,y,z);则得到更精细的结果,如图5.15所示。图5.15 更加精细的三维网格作图实例利用命令hidden off可以使得网格“透明”,如图5.16所示。图5.16 显示隐含线的网格图采用surf(x,y,z)代替mesh(x,y,z)后,则可以绘制出三维表面图形。如图5.17所示。图5.17 三维表面图如果使用指令meshc、meshz代替mesh指令,即x,y=meshgrid(-3:0.1:3, -2:0.1:2); z=(x.2-2*x).*exp(-x.2 -y.2-x.*y);figure(1);meshc(x,y,z);figure(2);meshz(x,y,z);则分别作出带等高线图的以及给出零基准平面的三维网格图。如图5.18所示。图5.18 (a)命令meshc带等高线的三维图(b)命令meshz给出零基准平面的三维图如果使用指令surfc、surfl代替surf指令,则分别作出带等高线的三维表面图以及具有光照效果的三维表面图。如图5.19所示。即x,y=meshgrid(-3:0.1:3, -2:0.1:2); z=(x.2-2*x).*exp(-x.2 -y.2-x.*y);figure(1);surfc(x,y,z);figure(2);surfl(x,y,z);图5.19 (a)命令surfc带等高线的表面图(b)命令surfl给出具有光照效果的表面图另外,使用contour指令可以绘制平面等高线图,使用contour3指令能够在三维空间绘制出等高线图来,而使用waterfall则可绘制出三维瀑布图。如图5.20所示。x,y=meshgrid(-3:0.1:3, -2:0.1:2); z=(x.2-2*x).*exp(-x.2 -y.2-x.*y);figure(1); contour(x,y,z,30);figure(2); contour3(x,y,z,30);figure(3); waterfall(x,y,z);图5.20 (a)平面等高线图(b)三维空间等高线图(c)三维瀑布图三维绘图指令总结如下所示。mesh(x,y,z) 绘制三维表面网格meshc(x,y,z)绘制三维表面网格, 带等高线图meshz(x,y,z) 绘制三维表面网格, 给出零基准平面surf(x,y,z) 绘制三维表面图surfc(x,y,z) 绘制三维表面图,带等高线图surfl(x,y,z) 绘制三维表面图,带光照效果contour(x,y,z,n) 绘制平面等高线图,等高线条数为ncontour3(x,y,z,n) 在三维空间绘制等高线图,等高线条数为nwaterfall(x,y,z) 绘制三维瀑布图5.3 子图的绘制我们可以用subplot命令将整个图形窗口分割成为若干子图部分,每个子图可以用不同绘图语句独立绘制出所需图形。subplot(m,n,p)创建行列子图中的第个子图。现举例说明。t=0:pi/10:4*pi;subplot(2,2,1);plot(t,sin(t);title(subfig1);subplot(2,2,2);plot(t,sin(2*t);title(subfig2);subplot(2,2,3);stem(t,sin(t);title(subfig3);x,y=meshgrid(-3:0.1:3,-2:0.1:2);z=(x.2-2*x).*exp(-x.2-y.2-x.*y);subplot(2,2,4);mesh(x,y,z);title(subfig4);如图5.21所示。图5.21 子图绘制实例5.4 图形窗口的创建如果在一个程序中需要创建多个图形窗口来作多幅图,那么就需要创建不同的图形窗口。Matlab中创建图形窗口的指令是figure(n);% 创建或打开第n号图形窗口,使之称为当前窗口。例如,下面程序创建了3个图形窗口,其中第三个图形窗口中有分割为上下2个子图。如图5.22所示。t=0:0.5:6*pi;figure(1); % 创建图1plot(t,t.*sin(t);figure(2); % 创建图2stem(t,cos(t);figure(3); % 创建图3subplot(2,1,1);plot(t,cos(t); % 图3中上图subplot(2,1,2);stairs(t,cos(t); % 图3中下图图5.22 figure命令创建的3个窗口图形5.5 将Matlab生成图形输出到文件利用Matlab生成图形之后,往往需要将这些图形保存为其他字处理软件能够接受的图形文件格式。Matlab提供了多种图形导出格式。在图形窗口菜单中,选择File|Export可打开导出文件对话框,选择导出图形格式并输出导出文件名,然后单击保存按钮,就可以获得相应的导出图形文件。参见图5.23。导出文件格式主要有2 类。一类是位图格式,如*.bmp,*.jpg,*.tif等。另一类是矢量图格式,如*.emf,*.eps等。位图格式的分辨率不高,打印图形质量比较差,矢量图格式的打印效果最好。建议在使用MS Word作为字处理软件写作论文时,尽量采用*.emf格式。而使用LaTeX作为科技排版工具时,采用*.eps格式比较方便。另外,Word XP版也支持*.eps的图形文件。图5.23 导出Matlab图形5.6 彗星轨线采用彗星轨线指令comet、comet3可以分别在二维、三维上绘制出质点的运动轨迹。其常用用法是:comet(x,y,p)comet3(x,y,z,p)x,y,z分别是轨迹的坐标点序列,与plot、plot3指令的要求相同。参数p是可选项,默认值为0.1,代表作图的慧尾长度参数。p可取0到1之间的数。例如:t = -10*pi:pi/250:10*pi;comet3(cos(2*t).2).*sin(t),(sin(2*t).2).*cos(t),t);得到动画绘图结果如图5.25所示。(动画的速度与计算机配置有关)图5.25 用comet3指令动画绘制三维曲线的瞬间5.7 图像表现Matlab可以通过imread命令从图像文件中读取图像数据矩阵,并通过imshow命令显示出来,还可以由imwrite将矩阵数据写为图像格式,为图像信号处理提供方便。在toolboximagesimdemos子目录下,有多幅图片和图像处理的例子供测试用,例如图片cameraman.tif等。如下程序演示如何读取灰度图,进行对比度、亮度变化,二值化、灰度直方图以及格式转换、存盘等等。运行结果如图5.26所示。I = imread(cameraman.tif); % 读取tif格式的图片256*256,灰度图I=double(I); % 将图像数据由uint8类型转换为double类型,便于数值运算Ia=fliplr(I); % 图像左右翻转(上下翻转可用flipud)Ib=70+I*0.6; % 演示提高亮度,减小对比度Ic=255*(I128); % 演示门限为128的二值化I=uint8(I); % 将计算结果由double类型转换为uint8类型以便显示Ia=uint8(Ia);Ib=uint8(Ib);Ic=uint8(Ic);subplot(2,2,1);imshow(I); % 显示原图片subplot(2,2,2);imshow(Ia);subplot(2,2,3);i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 协议履行及品质承诺函9篇
- 小学语文第一单元教学测试试题解析
- 2025-2030中国烧烫伤药物中医外治技术传承创新报告
- 2025-2030中国清真认证乳品添加剂供应链合规性管理研究报告
- 2025-2030中国消化系统药物行业供应链优化策略研究报告
- 办公楼宇消防设施维护协议
- 2025-2030中国智能仓储机器人系统集成商竞争格局研究报告
- 2025-2030中国智慧灯杆多功能集成方案与城市试点项目效果评估报告
- 2025-2030中国智慧城市建设趋势与商业模式创新研究报告
- 2025-2030中国智慧医疗技术发展路径及未来投资方向研究报告
- 2026版正禾一本通高三一轮总复习数学(湘教版)-1 第一节 导数的概念及其意义、导数的运算
- 急性食物中毒抢救护理常规
- 运动障碍康复护理课件
- 2025年屏山炒青茶市场分析报告
- 四川成都历年中考作文题与审题指导(2005-2024)
- 单位保密知识培训课件
- 《铁在人体中的作用》课件
- 二年级上册道德与法治第一单元《团团圆圆过中秋》作业设计
- 酒店蔬菜供货合同模板
- 【青松雪】几何最值36问-解析版
- 《海底隧道技术讲义》课件
评论
0/150
提交评论