Matlab作图函数的总结与分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高等理科教育2005年第6期(总第64期)Matlab作图函数的总结与分析+

黄琼湘那斯尔江·吐尔逊

(tfi疆大学数学与系统科学学院,新疆乌鲁木齐830046)

摘要Matlab(MATrixLABoratory的简称)是CleverMoler博士用Fortran语言开发的科学计算工具。它已成为科学研究、工程计算、应用开发的重要工具。国外已将它作为理工科大学的必修课程,国内各大学也开始开设这门课程。Matlab有强大的作图功能,有兴趣的读者可参考文献【卜4’。本文对Matlab的作图函数进行分析和总结,以供教学参考和学生学习之用。

关键词Matlab数据可视化作图函数

中图分类号G642.0文献标识码A

一、Matl如作图函数的总结

Matlab提供了丰富的作图函数,有100个之多。在教学和学习中显得有点杂乱。我们先对它们进行总结和分类,并提炼出它们的共性和特性。

Matlab的作图函数从视角的维数上分有三类:一维作图函数、二维作图函数和三维作图函数。它们的代表分别是line、plot和plot3等函数。从类型上分大致有四类:通用作图函数(如plot函数等);专业作图函数(如contour函数、quiver函数等);动画制作函数(如movie、comet3等函数);图形修饰函数(如view等函数)。

Matlab所有的作图函数都可以通过查帮助获得它的功能和用法。这里我们把作图函数按类型分类,列出一些主要和常用的作图函数(见表1),以抓住重点。

作图函数虽然功能不同,但它们的调用格式是一致的。我们用GraphF来表示一般的作图函数,它们的调用格式如下:

1.GraphF(X,Y,S)

这是一、二维函数的作图格式。x和Y表示图形的数据点,s表示图形修饰参数组(可以缺省)。当x,Y都是顶点坐标时,GraphF(X,Y,S)画出以x,Y为端点,s为参数的线;当x是一组顶点坐标,而Y对应于X的函数值时,GraphF(X,Y,S)画出函数Y的二维图形。

2.GraphF(X,Y,Z,S)

这是三维函数的作图格式。z是x和Y的函数。x,Y以二维坐标形式表示函数值z的作图区域D,s表示图形修饰参数组(可以缺省)。GraphF(x,Y,Z,S)画出定义域为D的函数z的三维图形。

值得注意的是,Matlab的作图函数总是描绘数据点(X,Y)(在平面上)或(x,Y,z)(在空间中)的图形。前者视为Y的函数,而后者视为z的函数。函数GraphF在作图前数据点必须事先给定,在作图时函数GraphF将各数据点用光滑的曲线连接成图形。另外,X,Y,Z还

÷收稿日期2004—02—19

资助项目新疆大学校基金“应用软件程序设计”重点课程建设项目资助

作者简介黄琼湘(1958)男,湖南衡阳人,教授,主要从事组合数学与图论、计算机算法研究

高等理科教育Maflab作图函数的总结与分析

可以是矩阵。当x,Y,z是矩阵时,它们的列数必须相同。此时GraphF函数按x,Y,z矩阵的各列画出一组图形(绘制的图形个数等于矩阵的列数)。

以上是对静态图形的做法进行的归纳和总结。动态图形的制作,原则上是将静态图形连续播放出来。图形的修饰与标注除了Matlab自备的函数可用外,还可引入Tex格式。由于篇幅这里都不作讨论。

表lMatlab作图函数的分类以及函数举倒

编号函数分类函数举例函数含义

Plot直角坐标下线性刻度曲线

Plotyy双纵坐标图

Polar极坐标曲线图l通用作图函数

Plot3三维直角坐标曲线图

Surf三维表面图

Mesh三维网线图

Bar直方图

Stairs阶梯形曲线图2专业作图函数Contour等高线图

HⅡ多边形填色图

Fplot函数曲线图

C,etframe获得影片动画图像的帧

lm2{rame将编址图像转换为影片动画3动画制作函数

Movie播放影片动画

Comet彗星状轨迹图

View设定3一D图形观测点

Gtext用鼠标在图上标注文字4图形修饰函数Lcg∞a图例说明

Axis轴的刻度和表现

Light灯光控制

二、Matlah作图函数的分析

Matlab的作图函数大多是以M函数的形式编写的,通过查阅这些M函数的帮助信息可以学习它们的用法。用M一文件编辑器打开它,可以阅读它的源代码,从中学习编程方法。然而,有一部分作图函数是系统的内装函数,它们经过编译处理,其源代码是不可读的。这些内装函数处在M一作图函数的底层,M一作图函数本质上是通过调用这些内装函数来作图的。以下我们先分析山峰作图函数(peaks)。

1.peaks是一个M一函数。它可以用编辑命令打开:editpeaks。

2.程序说明:我们把它分成了两段。第一段是注解段,用“%”号标识,在命令窗口输入:helppeaks时,显示该段帮助信息。第二段是代码段,我们用(1)~(28)对它进行了标注,以便分析程序。

3.程序分析。(1)peaks函数共有11种调用格式,如原函数注释中所述。(2)在以上程序流程图中,详细分析了8种调用方式,另外4种留给读者完成。(3)nargin,nargout是通用程序的预定义变量,分别用来记录函数的输入参数个数和输出参数个数。它们是由函数的调用格式确定的,并且可被系统自动标识。(4)argl,ar92….是通用程序的预定义变量,argn表示第n

高等理科教育2005年第6期(总第64期)

个输入量的值。它们是由函数的调用格式确定的,并且可被系统自动标识。(5)程序中的函数图形由第(24)条语句surf(x,Y,Z)作出。(6)程序输出的作图数据,由第(3),(6),(8),(11),(13),(is),(17)条语句根据不同情况输出。(7)注意length(X)函数是测量x的维数而不是位数。(8)当输入peaks(1)时,程序执行到第(6)句,分母为零出错。

从以上对peaks函数的分析可知:peaks函数是通过surf函数作图的。打开surf函数后,经分析得知surf函数是通过surface函数作图的(由于篇幅我们省去对surf函数的分析)。而surface函数是一个经过编译的内装函数,它不可读。

常用的作图函数plot()也是一个内装函数。我们可以利用plot()函数编写用户自己的M一函数,开发出新的作图函数,这就像利用surface函数开发surf函数和peaks函数一样。总之,Matlab的作图函数按它们的层次关系又可分为两类,一类是它自带的内装作图函数,它们处在作图函数的底层,经过编译不可读。一类是用户编写的M一作图函数,它的源代码可读,通过调用内装作图函数作图。

三、Matlab作图函数的应用举例

对应于第一节的作图函数的格式,这里我们举几个简单的例子(它们都g_k3zt调试,可直接运行)。

例1.作(1,2),(5,8)两点的连线

line([1,5],[2,8])%用line函数作(1,2),(5,8)两点的连线

plot([1,5],[2,8])%用plot函数作(1,2),(5,8)两点的连线,缺省线的修饰plot([1,5],[2,8],’r’)%用plot函数作(1,2),(5。8)两点的连线,用红色画线plot3([1,2],[5,2],[5,9],’Color7,7r’,7LineWidth’,5)%画三维空同中的直线,并对线进行修饰

例2.画二维曲线,并对线进行修饰(代码可以运行,图略)

elfreset,x=0:pi/12:2‘pi;

PNl={7C010r7,7LineWidth7,’Marker,}.%设置属性名元胞数组

PVl={[100],5,~d};%设置属性值

plot(sin(X),COS(x),PNl,PVl)%根据属性值画图

axissquare

PS.Color=F0.70.70];PS.LineWidth=2;%用构架数组设置属性名和属性值

line(sin(7。x),COS(7+X),PS);%根据属性值画图

例3.画三维螺旋曲线,并对线进行修饰(代码可以运行,图略)

r=0:0.1:10”pi:

a=0:0.1:10“pi:

x=r.‘sin(a);

y=r.’cos(a);

z=0:0.1:10”pi

plot3(x,Y,z)

例4.用surf(x,Y,Z,’s’)绘制3维曲面图形(代码可以运行,图略)

elf,x=一4:4;y=x;

[x,Y]=meshgrid(X,Y);%作网格点

Z=X.-2+Y.‘2:

surf(X,Y,Z);%surf作图

(下转第48页)

相关文档
最新文档