实验一 数据的可视化:光纤横截面上的场分布模拟

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

实验一数据的可视化:光纤横截面上的场分布模拟

一、实验目的

MATLAB不仅在数值计算方面独占鳌头,而且在数据可视化方面也是功能强大。MATLAB可以给出数据的二维、三维甚至四维的图形表现。通过对图形的线型、立面、色彩、渲染、光线、视角等的控制,可以把数据的特征表现的淋漓尽致。本次实验拟通过对光纤横截面上的模场分布进行模拟,使大家熟悉MATLAB常用的二维、三维绘图函数以及和绘图有关的命令,学会如何用不同的色彩来表示数值的大小,同时对单模、多模光纤的模场分布规律建立感性认识,为更好的学习后续专业课程打基础。

二、MATLAB的常用绘图函数

1. 二维绘图函数

MATLAB中最常用的二维绘图函数是plot函数,其调用格式如下:

①plot ( X, Y, 's')

●若X、Y为同维向量,则分别以X、Y中的元素为横、纵坐标绘制曲线;

●若X为向量,Y是有一维和X等维的矩阵,则绘制多个不同色彩的曲线,曲线数

等于Y的另一维;

●若X为矩阵,Y为向量,情况和上相同;

●若X,Y为同维矩阵,则以X,Y对应的列元素为横、纵坐标绘制曲线族,曲线条

数等于矩阵的列数;

●s是字串,是用来指定线型、色彩的选项。各种可选项如下表所示

②plot ( X1, Y1, 's1',X2, Y2, 's2',…)

同时绘制多个曲线,每个绘线三元组(X, Y, 's')的结构和作用与plot(X, Y, 's')相同,不同的是三元组之间可以互不相关。

例1:t=0:0.01:2*pi; y1=t.*sin(t.^2) ; y2=exp(t)+cos(t.^2) ; plot (t, [y1 ; y2], '-r ' ) ;

% 或者plot(t, y1,'-r', t, y2,'-.m')

其他的二维绘图函数如ezplot,可用于绘制隐函数图、参数绘图,其调用格式:

函数说明

ezplot(‘f’,[a, b]) 绘制隐函数f(x,y)=0的图形,横坐标范围[a,b] ezplot(‘f’,[xmin,xmax,ymin,ymax]) 绘制隐函数f(x,y)=0的图形,横坐标范围

[xmin, xmax], 纵坐标范围[ymin, ymax] ezplot(‘fx’, ‘fy’, [tmin,tmax]) 绘参数图,绘出fx(t), fy(t), t的范围

[tmin,tmax]

例2:画圆:x2+y2=R2( R=5µm )

a=5*1e-06; h1=ezplot('x^2 + y^2 - (5*1e-6)^2',[-a,a]); % h1 返回图形的句柄(标识)

2. 三维绘图函数

①画三维曲线图—plot3函数

调用格式:

plot3(X1, Y1, Z1,’s1’, X2, Y2, Z2,’s2’, ...),除包含第三维之外,用法与plot函数相同。

②画三维网格图—mesh函数

MATLAB的三维网格图的形成原理:在x-y平面上指定一个矩形区域,采用与坐标轴平行的直线将其分格,计算网格点上的函数值,即z轴的值,得到三维空间中的数据点;将这些数据点分别用处于x-z面或其平行平面内的曲线和处于y-z面或其平行平面内的曲线连接,即形成三维网格图。

调用格式:

●mesh(X, Y, Z, C)

X, Y, Z, C为矩阵,X,Y存放格点的横、纵坐标,可由meshgrid函数生成:[X, Y]=meshgrid(x,y),x,y为向量,指定画图的矩形区域。C是指定颜色的数据矩阵。

●mesh(X, Y, Z) (常用)

同上,只是颜色矩阵C=Z,故网格图的颜色和网格的高度(即z轴的的值)成正比。

例3:

x=linspace(-2,2,30);

y=linspace(-2,2,30);

[xx,yy]=meshgrid(x,y);

zz=xx.*exp(-xx.^2-yy.^2);

mesh(xx,yy,zz)

meshgrid函数将向量x,y指定的矩形区转化为二维

矩阵xx,yy(二维网格点坐标),以供三维绘图所需

③画三维曲面图—surf函数

调用格式与mesh函数一样,只是mesh函数

所绘的网格图其格线着色,补片(格线间的空白区,网格面)不着色,如例3图所示;而surf

所绘曲面图,其格线都为黑色,补片着不同的颜色(具体由颜色矩阵C指定),如下图所示。例4:(1-4条命令同例3); surf(xx,yy,zz); colorbar;

其中,colorbar命令的作用是在图形的右边加一竖直的颜色条,从中可见曲面图补片的颜色

和z轴值成正比。

对于surf图,可用shading命令进行着色的细

化处理:

shading flat 曲面图的某整个补片都着一种颜

色,颜色取自该补片四顶点数据中下标最小的那点

的颜色;

shading faceted 在flat用色基础上,再在补片

的四周勾画黑色网格线,是MATLAB的默认设置。

如上图所示。

shading interp 曲面图补片上各点的颜色由该

补片四顶点的颜色经二次线性插值得到,这种方

法用色细腻,但计算量大。如下图所示。

由此可此,shading flat或interp都将去掉曲面

图中的黑色网格线。

3. 矢量场图

矢量场图(又称速度图)在工程中的应用很广泛。MATLAB中绘制矢量图的函数有compass、feather、quiver、quiver3这里仅介绍quiver和quiver3。

①quiver函数

绘制二维矢量场图,使用格式:quiver(X, Y, U, V, S, ’LSC’)

其中,X,Y,U,V为大小相同的向量或矩阵,X,Y指定每个矢量的起始点坐标,U,V指定每个矢量的x和y分量。S是指定所画箭头大小的参数,默认S=1,若S=2,则箭头大小加倍,若S=0.5,则缩小一倍,若S=0,则箭头大小不可调整。第6个参数LSC是个字串,用于指定合法的线型和颜色(具体参见上表)。

例5:绘制标量函数sin(x)*cos(y)的梯度(矢量)图

[xx,yy]=meshgrid(-2:0.2:2,-2:0.2:2);

zz=sin(xx).*cos(yy);

[u,v]=gradient(zz);

%计算梯度,输出u、v是二维梯度矢量的x、y分量

quiver(xx,yy,u,v)

结果如右图所示。

②quiver3函数

用于三维矢量图绘制,除了包含第三维的信息之外,用法和quiver函数相同:

相关文档
最新文档