资源描述
《MATLAB语言》课程论文
MATLAB在图形绘制中的应用
姓名:*******
学号:**************
专业:******************
班级:**********
指导老师:*****
学院:*****
完成日期:*****
MATLAB在图形绘制中的应用
( ***** ******* ********)
[摘要] MATLAB具有功能强,效率高,简单易学等特点,在许多领域得到广泛应用。强大的绘图功能是MATLAB的特点之一,MATLAB提供了一系列的绘图函数,用户不需要过多考虑绘图细节,只需给出一些基本参数就能得到所需图形,这一类函数称为高层绘图函数。除此之外,MATLAB还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素看做是一个独立的对象,系统给每个图形对象分配一个句柄,以后可以通过该句柄对该图形元素进行操作,而不影响图形的其他部分。高层绘图操作简单明了,方便高效,使用户最常用的绘图方法,而低层绘图操作控制和表现图形的能力更强,为用户更加自主地绘制图形创造了条件。
[关键词] MATLAB语言 二维图形 三维图形
[问题的提出]
MATLAB在如今的科学研究和工程应用中,我们会遇到各种各样的问题,其中最基本的就是关于图形绘制的问题了,而MATLAB中强大的绘图功能将使这些问题可以得到更好的解决,它在数学函数,行列式矩阵,物理,天文等等各个领域内都能应用到,只要需要绘图,MATLAB是最佳的选择,下面我们就分别对MATLAB在此方面的应用进行分析:
一、MATLAB在二维图形绘制中的应用
(1)简单函数绘制
例:用下列数据来绘制图形:
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=sin(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命令对复数矩阵同样适用。
例:在复数矩阵中绘制函数图象
clear i; %保证i是复数
r=linspace(0,2); %创建向量r
theta=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)用条形图,阶梯图,杆图,和填充图绘制曲线
例:分别用条形图 阶梯图 杆图 填充图绘制y=x ²的图形
x=linspace(-2*pi,2*pi,20); %x的取值范围
y1=x.^2; %所要绘制的函数
subplot(2,2,1); %1号分区
bar(x,y1); %绘制条形图
title('y1=x^2的条形图'); %设置标题
subplot(2,2,2); %2号分区
stairs(x,y1); %绘制阶梯图
title('y1=x^2的阶梯图'); %设置标题
subplot(2,2,3); %3号分区
stem(x,y1); %绘制杆图
title('y1=x^2的杆图'); %设置标题
subplot(2,2,4); %4号分区
fill(x,y1,'r'); %绘制填充图
title('y1=x^2的填充图'); %设置标题
程序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)在绘制的图形中加注坐标轴和图例标注
例:画出函数图形并标注坐标轴和图例
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); %函数y
plot(x, y,‘k:diamond’) % 其中「k」代表黑色,「:」代表点 % 「diamond 」则指定菱形为曲线的线标
程序10图
二、MATLAB在三维图形绘制中的应用
三维图形可以用plot3来绘制。该命令与plot类似,但是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,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:绘制三维网格图
x=-4:4;y=x; % x、y的取值范围都是-4到4
[X,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绘制的是曲面而不是网格。
绘制三维表面图并且和三维网格图作比较
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); %图形分割
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; %与程序下一行共同构成所求函数
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'),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(y);shading flat; %每个网格片用一个颜色着色
figure(3); %建立图形窗口对象
surf(z);shading interp ; %在网格片内采用颜色插值处理
程序(4)图
三、结论
从以上利用MATLAB语言对各种不同的函数绘图我们不难的出以下结论:MATLAB语言具有强大的绘图功能,小到简单的函数绘图,大到天文地理绘图,MATLAB都可以解决,很大程度上帮助我们解决学习及生活终于到的问题,给我们提供了方便。我们最常见到的xy平面上的线性坐标曲线图,用plot函数来完成,它的调用格式是plot(x,y);如果想用不同的颜色来绘图,则含选项的plot函数的调用格式是plot(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语言相对于其它程序语言的强大功能和优越性,它更加的方便和简洁易懂。总体来说通过对上述内容的分析讨论,使我对MATLAB中的某些函数的应用更加的熟练,相信对我在以后的学习中会有很大的帮助。起初我以为matlab和我们所学的别的程序语言应该没多大的差距,可是通过这一学期的学习和这次论文的完成,我认识到了MATLAB的功能强大性,以及运用的广泛性,而且我相信本次论文经历会在我以后的学习中会有很大的帮助。
最后,向老师的辛勤指导及教学表示深深地谢意!
[参考文献]
[1] 刘卫国.MATLAB程序设计与应用(第二版)[M].北京:高等教育出版社,2006.
[2] 李海涛,邓樱,MATLAB程序设计教程[M],高等教育出版社,2002
[3] 闻新、周露、张鸿著,科学出版社,MATLAB科学图形构建基础与应用(6.x),2006年6月
[4] 苏金明、王永利著,电子工业出版社,MATLAB图形,2005年11月
12
展开阅读全文