1、MATLAB语言课程论文MATLAB在图形绘制中的应用姓名:* 学号:* 专业:*班级:* 指导老师:*学院:* 完成日期:*MATLAB在图形绘制中的应用( * * *)摘要 MATLAB具有功能强,效率高,简单易学等特点,在许多领域得到广泛应用。强大的绘图功能是MATLAB的特点之一,MATLAB提供了一系列的绘图函数,用户不需要过多考虑绘图细节,只需给出一些基本参数就能得到所需图形,这一类函数称为高层绘图函数。除此之外,MATLAB还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素看做是一个独立的对象,系统给每个图形对象分配一个句柄,以后可以通过该句柄对该图形元素
2、进行操作,而不影响图形的其他部分。高层绘图操作简单明了,方便高效,使用户最常用的绘图方法,而低层绘图操作控制和表现图形的能力更强,为用户更加自主地绘制图形创造了条件。关键词 MATLAB语言 二维图形 三维图形 问题的提出 MATLAB在如今的科学研究和工程应用中,我们会遇到各种各样的问题,其中最基本的就是关于图形绘制的问题了,而MATLAB中强大的绘图功能将使这些问题可以得到更好的解决,它在数学函数,行列式矩阵,物理,天文等等各个领域内都能应用到,只要需要绘图,MATLAB是最佳的选择,下面我们就分别对MATLAB在此方面的应用进行分析:一、MATLAB在二维图形绘制中的应用(1)简单函数绘
3、制例:用下列数据来绘制图形: x=0:0.1:2*pi; %x的取值范围 plot(x,sin(x),x,cos(x) %绘制sin(x)和cos(x)的函数 程序1 图 程序2图(2)用规定的符号绘制需要的函数图形 例:在MATLAB中能很容易画出规定形状的图: x=0:0.1:2*pi; %x的取值范围 plot(x,sin(x),-g,x,cos(x),-.r) %用规定的形状绘图 运行结果:如图程序2 (3)在一个图形中绘制多个子图例:在同一幅图中同时绘制出sin(x) cos(x) tan(x) cot(x)的x=linspace(0,2*pi,100); %创建一系列的值 y=si
4、n(x); z=cos(x); %所要绘制的函数 a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) %所要绘制的函数 subplot(2,2,1);plot(x,y),title(sin(x) %分区,绘图,题目 subplot(2,2,2);plot(x,z),title(cos(x) %分区,绘图,题目 subplot(2,2,3);plot(x,a),title(sin(x)cos(x) %分区绘图题目 subplot(2,2,4);plot(x,b),title(sin(x)/cos(x) %分区绘图题目 程序3图(4) plot命令对复数矩阵同样适用。例
5、:在复数矩阵中绘制函数图象clear i; %保证i是复数r=linspace(0,2); %创建向量rtheta=linspace(0,10*pi); %创建角向量x,y=pol2cart(the,tar); %将弧度坐标转化成复数向量z=x+i*y; %函数plot (z) %对z绘图程序4图(5)绘制误差条形图 例:绘制出sin(x)的15%误差条形图x=linspace(0,10,50); %创建一系列值 y=exp(sin(x); %创建数据 delta=0.15*y; %计算15%的误差限 errorbar(x,y,delta); %绘出误差条形图 程序5图 (6)用条形图,阶梯图
6、,杆图,和填充图绘制曲线例:分别用条形图 阶梯图 杆图 填充图绘制y=x 的图形 x=linspace(-2*pi,2*pi,20); %x的取值范围y1=x.2; %所要绘制的函数subplot(2,2,1); %1号分区bar(x,y1); %绘制条形图title(y1=x2的条形图); %设置标题subplot(2,2,2); %2号分区stairs(x,y1); %绘制阶梯图title(y1=x2的阶梯图); %设置标题subplot(2,2,3); %3号分区stem(x,y1); %绘制杆图title(y1=x2的杆图); %设置标题subplot(2,2,4); %4号分区fil
7、l(x,y1,r); %绘制填充图title(y1=x2的填充图); %设置标题程序6图(7)利用极坐标绘制曲线 例:在极坐标下绘制函数图形t=0:0.1:2*pi; %t的范围r=ones(size(t); %极坐标范围polar(t,r) %绘制极坐标图程序7图(8)利用对数坐标绘制图形 例:在半对数坐标下绘制函数图形 x=linspace(0,7); %创建x值 y=exp(x); %创建y值 subplot(2,1,1);plot(x,y); %绘制通常图形 subplot(2,1,2);semilogy(x,y); %绘制半对数刻度曲线 程序8图(9)在绘制的图形中加注坐标轴和图例标
8、注例:画出函数图形并标注坐标轴和图例 x=0:0.1:2*pi; plot(x,sin(x)title(示例图)xlabel(x轴)ylabel(y轴)text(20,20,sin(x)gtext(sin(x)程序9图(10)在二维绘图中可以对图形进行上色,可以用不同的颜色绘制图形例:用规定的编制绘图x = 0:0.5:4*pi;% x的取值范围 y = sin(x); %函数yplot(x, y,k:diamond)% 其中k代表黑色,:代表点 % diamond 则指定菱形为曲线的线标程序10图二、MATLAB在三维图形绘制中的应用 三维图形可以用plot3来绘制。该命令与plot类似,但
9、是plot3需要3个向量或者矩阵参数。二元函数的图形是三维空间曲面,空间曲面图形在帮助人们了解二元函数特性上具有较大作用。现介绍绘制空间曲面图形的命令。(1)meshgrid命令meshgrid的调用形式是:X,Y=meshgrid(x,y),绘制二维图形时生成小矩阵的格点;X,Y=meshgrid(x),等价于X,Y=meshgrid(x,x);X,Y,Z=meshgrid(x,y,z),绘制三维图形时生成空间曲面的格点;X,Y,Z=meshgrid(x),等价于X,Y,Z=meshgrid(x,x,x).(2)三维网格图命令mesh函数mesh的命令形式如下:mesh(X,Y,Z),X,Y
10、,Z是同维的矩阵;mesh(x,y,Z),x,y是向量,而Z是矩阵,等价于mesh(Z),若提供参数x,y,等价于mesh(x,y,Z),否则默认x=1:n,y=1:m.(1) 绘制基本的三维曲线函数程序1:在三维坐标中绘制三维曲线 t=0:pi/50:10*pi; %t的取值范围plot3(sin(t),cos(t),t) %绘三维图形及各坐标轴函数程序1.1图 t=0:0.1:10*pi; %t的取值范围x=2*t; %x轴的函数 y=sin(t); %y轴的函数 z=cos(t); %z轴的函数plot3(x,y,z); %绘三维图形程序1.2图(2) 绘制基本的三维曲面图 程序1:绘制
11、三维网格图x=-4:4;y=x; % x、y的取值范围都是-4到4X,Y=meshgrid(x,y); % 形成采样点矩阵Z=X.2+Y.2; % 计算函数值mesh(X,Y,Z); % 绘网格图colormap(hot); % 选用色图 程序1图 程序2:绘制三维曲面图x=-4:4;y=x; %x,y的取值范围X,Y=meshgrid(x,y); %形成采样点矩阵Z=X.2+Y.2; %计算函数值surf(X,Y,Z); %绘曲面图colormap(hot); %选用色彩 程序2图 程序3:绘制三维表面图surf的调用方式与mesh相同,与mesh不同的是surf绘制的是曲面而不是网格。绘制
12、三维表面图并且和三维网格图作比较t=-1:0.1:1; %取值范围x,y=meshgrid(t);%生成网格z=3-x.2-y.2;%原函数subplot(1,2,1),mesh(x,y,z); %分区域绘图title(网格图);%标注标题subplot(1,2,2),surf(x,y,z); %分区域绘图title(表面图); %标注标题程序3图 程序4:球面的绘制在MATLAB中用命令sphere来绘制球面,其使用形式为:命令形式1:sphere(n)命令形式2:x,y,z=sphere(n)%绘制半径为1的球面v=-2 2 -2 2 -2 2; %设置参数subplot(1,2,1);
13、%图形分割sphere(30),title(半径为1的球面); %绘制图形及标注标题axis(v); %对图形坐标进行设置%绘制半径为2的球面x,y,z=sphere(30); %设置参数subplot(1,2,2); %图形分割surf(2*x,2*y,2*z); %绘制图形title(半径为2的球面); %标注标题axis(v); %对图形坐标进行设置程序4图(3) 在同一个图中绘制多个子图程序:在同一幅图中用四种不同的格式绘图并上色t=-8:0.3:8; %取值范围x,y=meshgrid(t); %生成小矩形的格点r=sqrt(x.2+y.2)+eps; %与程序下一行共同构成所求函数
14、z=sin(r)./r; %与程序上一行共同构成所求函数subplot(1,3,1);%图形分割meshc(x,y,z); %用meshc命令,生成图形的同时,生成曲面的等高线title(meshc),axis(-8 8 -8 8 -0.5 0.8);%标题标注及坐标控制subplot(1,3,2); %图形分割meshz(x,y,z);%用meshz命令,生成图形的同时,生成曲面下方的长方形的台柱title(meshz),axis(-8 8 -8 8 -0.5 0.8);subplot(1,3,3); %图形分割mesh(x,y,z);%用mesh命令,生成三维网格图形title(mesh)
15、,axis(-8 8 -8 8 -0.5 0.8); %标题标注及坐标控制 程序(3)图(4)颜色控制三维图形s=linspace(0,0.5*pi,10); %在(0,0.5pi)取十个点t=linspace(0,1.5*pi,30); %在(0,1.5pi)取十个点 S,T=meshgrid(s,t); %建立网格坐标x=cos(S).*cos(T); %参数方程y=cos(S).*cos(T);z=sin(S);colormap(prism); %对图形进行着色处理figure(1) ; %建立图形窗口对象surf(x); %绘制三维曲面图figure(2); %建立图形窗口对象surf
16、(y);shading flat; %每个网格片用一个颜色着色figure(3); %建立图形窗口对象surf(z);shading interp ; %在网格片内采用颜色插值处理 程序(4)图三、结论从以上利用MATLAB语言对各种不同的函数绘图我们不难的出以下结论:MATLAB语言具有强大的绘图功能,小到简单的函数绘图,大到天文地理绘图,MATLAB都可以解决,很大程度上帮助我们解决学习及生活终于到的问题,给我们提供了方便。我们最常见到的xy平面上的线性坐标曲线图,用plot函数来完成,它的调用格式是plot(x,y);如果想用不同的颜色来绘图,则含选项的plot函数的调用格式是plot(
17、x1,y1,选项1,x2,y2,选项2,xn,yn,选项n);双纵坐标函数ploty(x1,y1,x2,y2);还可以用title,xlabel,text,legend函数对图形进行辅助操作;在进行三维函数操作时用plot3函数进行操作,调用格式是plot3(x1,y2,z1,选项1);也可以用颜色来绘制函数图象,用法和二维函数图象一样;绘制三维图形时也可以绘制成杆图 饼图 条形图 柱状图等各种形式,我们需要的各种形式的图MATLAB都可以解决。四课程体会经过对MATLAB语言这门课程的学习,我了解并体会到了MATLAB语言相对于其它程序语言的强大功能和优越性,它更加的方便和简洁易懂。总体来说
18、通过对上述内容的分析讨论,使我对MATLAB中的某些函数的应用更加的熟练,相信对我在以后的学习中会有很大的帮助。起初我以为matlab和我们所学的别的程序语言应该没多大的差距,可是通过这一学期的学习和这次论文的完成,我认识到了MATLAB的功能强大性,以及运用的广泛性,而且我相信本次论文经历会在我以后的学习中会有很大的帮助。 最后,向老师的辛勤指导及教学表示深深地谢意!参考文献1 刘卫国.MATLAB程序设计与应用(第二版)M.北京:高等教育出版社,2006.2 李海涛,邓樱,MATLAB程序设计教程M,高等教育出版社,20023 闻新、周露、张鸿著,科学出版社,MATLAB科学图形构建基础与应用(6.x),2006年6月4 苏金明、王永利著,电子工业出版社,MATLAB图形,2005年11月12