Value Engineering ———————————————————————作者简介:张晓利(1976-),女,陕西临潼人,硕士研究生,讲师,研究方向为
计算机应用。
0引言
MATLAB 在数据可视化方面提供了强大的功能,它可以把数据用二维、
三维乃至四维图形表现出来。通过对图形的线型、立面、色彩、渲染、光线以及视角的处理,将计算数据的特性表现得淋漓尽致。
在实际的教学过程中,学生对数据可视化很感兴趣,二维绘图指令较容易掌握,但是三维表现图的内容比较多,变现形式灵活,它有三维曲线图、三维曲面图和三维网面图。尤其对曲面和网面绘图指令中的数据理解不清。因此,本文详细分析三维面图指令中各种形式数据的含义。
1数据的三维面图生成过程
三维曲面绘图的数据准备比较复杂,可分四个步骤:①产生自
变量采样向量;
②产生自变量格点矩阵;③计算格点矩阵上的函数值矩阵;④在平面网格基础上绘制三维面图。在数学上,函数z=f (x ,y )的图像是三维空间的曲面,在MATLAB 中,总是假设函数z=f (x ,y )定义在一个矩形的区域D=[x1,xn]×[y1,ym]上。为了生成x-y 矩形区域上的顶点坐标值采用meshgrid 命令。得到了网格点上的函数值矩阵后,可以利用MATLAB 中函数mesh 或surf 来生成函数的网面图或曲面图。
2数据的三维网面图
函数mesh 是MATLAB 三维网面绘图指令,绘制出来的图形线条有颜色,空档处是白色的,它有六种调用方式。
①mesh (X ,Y ,Z ,C ):参数X 、Y 、Z 都为矩阵值,X (mXn )矩阵的
每一个行向量都是相同的,
Y (mXn )矩阵的每一个列向量都是相同的,Z (mXn )矩阵是格点上的值。参数C 表示网格曲面的颜色分布情况;②mesh (X ,Y ,Z ):参数X 、Y 、Z 都为矩阵值,X (mXn )矩阵的每一个行向量都是相同的,Y (mXn )矩阵的每一个列向量都是相同的,Z (mXn )矩阵是格点上的值。网格曲面的颜色分布与Z 方向上的高度值成正比;③mesh (x ,y ,Z ,C ):参数x 和y 为长度分别是n 和m 向
量值,而参数Z 是维数为mXn 的矩阵,
参数C 表示网格曲面的颜色分布情况;④mesh (x ,y ,Z ):参数x 和y 为长度分别是n 和m 向量值,而参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上的高度值成正比。
对于③和④这两种格式,相当于执行了下面两条命令:[X ,Y]=meshgrid (x ,y )和mesh[X ,Y ,Z ,C]。⑤mesh (Z ,C ):参数Z 是维数为mXn 的矩阵,C 表示网格曲面的颜色分布情况;⑥mesh (Z ):参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上高度值成正比。
对于⑤和⑥,则绘图时栅格数据点的取法是x=1:n ;y=1:m 。其实,这种格式的命令相当于执行了下面5条命令:[m ,n]=size (Z );x=1:n ;y=1:m ;[X ,Y]=meshgrid (x ,y );mesh[X ,Y ,Z ,C]。
3数据的三维曲面图
函数surf 是MATLAB 三维曲面绘图指令,绘制出来的图形线
条有黑色,空档处是有颜色的,它有六种调用方式。
①surf (X ,Y ,Z ,C ):参数X 、Y 、Z 都为矩阵值,参数C 表示网格曲面的颜色分布情况;②surf (X ,Y ,Z ):参数X 、Y 、Z 都为矩阵值,网
格曲面的颜色分布与Z 方向上的高度值成正比;③surf
(x ,y ,Z ,C ):参数x 和y 为长度分别是n 和m 向量值,而参数Z 是维数为mXn 的矩阵,参数C 表示网格曲面的颜色分布情况;④surf (x ,y ,Z ):参数x 和y 为长度分别是n 和m 向量值,而参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上的高度值成正比;⑤surf (Z ,C ):参数Z 是维数为mXn 的矩阵,参数C 表示网格曲面的颜色分布情况;⑥surf (Z ):参数Z 是维数为mXn 的矩阵,网格曲面的颜色分布与Z 方向上的高度值成正比。
4实例在x ,y ∈[0,2π]区间里,绘制z=sin (y )*cos (x )的三维网面和曲面图。
4.1网面图(图1)x=[0:0.15:2*pi];y=[0:0.15:2*pi];[X ,Y]=meshgrid (x ,y );Z=sin (Y ).*cos (X );mesh (X ,Y ,Z )。
4.2曲面图(图2)x=[0:0.15:2*pi];y=[0:0.15:2*pi];Z=sin (y')*cos (x );surf (x ,y ,Z )。
在网面绘图指令中,数据准备是按步骤进行的,Z 的计算采用数组运算,而在曲面绘图中,没有按照步骤进行,这时Z 的计算采用矩阵运算得到。通过对比,对三维面图的后四种不按照正常步骤准备三维数据理解的更加透彻。
5结束语
通过对常用的三维绘图指令中的数据的详细分析,给学习MATLAB 图形表现功能的有关人员提供一个有力的帮助。使得Matlab 的图形功能可实际应用于高等数学、线性代数、计算方法等课程的教学过程中,使抽象的教学内容变得可视化,增加了课程内容的生动性与表现力。
参考文献:
[1]张志涌.MATLAB R2008a.北京:北京航空航天大学出版社,2009,(
8):
182-222.
[2]王薇,杨丽萍.Matlab 在数据可视化中的应用.长春大学学报,2008,18,(5):52-54.MATLAB 中三维数据可视化及应用
Three-dimensional Data Visualization and Application in MATLAB
张晓利Zhang Xiaoli
(西安邮电学院计算机学院,西安710121)
(School of Computer Science &Technology ,Xi'an University of Posts &Telecommunications ,Xi'an 710121,China )
摘要:MATLAB 在三维数据可视化中的应用很灵活,数据较难理解。在介绍MATLAB 的三维绘图指令的基础上,详细分析指令中的绘图数据
含义,并给出相应的实例,目的在于对形式多样的数据理解提供有力帮助。
Abstract:Application of MATLAB in three-dimensional data visualization is very flexible,data is more difficult to understand.In the introduction of three-dimensional graphics commands,the meanings of mapping data are analyzed in detail and applied.Aims at understanding of various forms of data are to provide a powerful help.
关键词:MATLAB ;数据可视化;mesh Key words:MATLAB ;data visualization ;mesh
中图分类号:TP312
文献标识码:A
文章编号:1006-4311(2011)24-0143-01
·143·