
第五章数据显示及存取.ppt
34页第五章第五章 数据显示及存取数据显示及存取Matlab ProgrammingMatlab Programming教学内容教学内容5.1 5.1 二维绘图二维绘图5.2 5.2 三维绘图三维绘图5.3 5.3 图形处理图形处理5.4 5.4 特殊图形的绘制特殊图形的绘制 5.5 MAT5.5 MAT文件及应用文件及应用5.6 5.6 文件文件I/OI/OMatlab Programming5.1 5.1 二维绘图二维绘图n函数函数plot()plot()n函数函数fplotfplot()()n函数函数ezplotezplot()()Matlab Programming5.1.1 5.1.1 函数函数plot()plot()nplot()plot()函数是最常用的二维图形绘制函数;函数是最常用的二维图形绘制函数;n根据输入参数不同,可以实现不同的功能;根据输入参数不同,可以实现不同的功能;Matlab Programming1.plot(y)1.plot(y)nplot(y)是基本二维绘图函数;是基本二维绘图函数;n绘制向量绘制向量 y 中元素的线性图;中元素的线性图;n参数参数y可以是向量、实数矩阵或复数向量;可以是向量、实数矩阵或复数向量;n以下标为横坐标,元素值为纵坐标,等价于:以下标为横坐标,元素值为纵坐标,等价于:x=[1:length(y)];plot(x,y);•例例1::y=y=[0,0.48,0.84,1,0.91,6.14][0,0.48,0.84,1,0.91,6.14]; ;plot(yplot(y););•例例2::t= 1:0.1:10;t= 1:0.1:10;y=y=sin(tsin(t););plot(yplot(y) )Matlab Programmingn用用plot(y)绘制矩阵。
绘制矩阵 y=[0 1 2;2 3 4; 5 6 7]; plot(y)Matlab Programming2.plot(x,y)2.plot(x,y)n基本形式基本形式 plot(x,yplot(x,y) )üx, y x, y 都是向量,则以都是向量,则以 x x 中元素为横坐标,中元素为横坐标, y y 中元素为纵坐标作中元素为纵坐标作平面曲线此时平面曲线此时 x, y x, y 必须具有相同长度必须具有相同长度üx, y x, y 都是矩阵,则将都是矩阵,则将 x x 的列和的列和 y y 中相应的列相组合,绘制多条中相应的列相组合,绘制多条平面曲线此时平面曲线此时 x, y x, y 必须具有相同的大小必须具有相同的大小üx x 是向量是向量, y , y 是矩阵,若是矩阵,若 x x 的长度与的长度与 y y 的行数相等,则将的行数相等,则将 x x 与与 y y 中的各列相对应,绘制多条平面曲线;否则,若中的各列相对应,绘制多条平面曲线;否则,若 x x 的长度与的长度与 y y 的列数相等,则将的列数相等,则将 x x 与与 y y 中的各行相对应,绘制多条平面曲线。
中的各行相对应,绘制多条平面曲线此时此时 x x 的长度必须等于的长度必须等于 y y 的行数或列数的行数或列数Matlab Programmingn例:例:y=cos(x) 在在 [0, 4*pi] 上的图像上的图像x=[0:0.1:4*pi]; y=cos(x);plot(x,y);Matlab Programmingq 点点 线线二维作图机制二维作图机制例:y = sin(x), 0 < x < 2 >>>> x=[0:0.5:2*pi];>>>> y=sin(x);>>>> plot(x,y,'.')先画点,后连线一、画点一、画点Matlab Programmingq 点点 线线二维作图举例二维作图举例例:y = sin(x), 0 < x < 2 >>>> x=[0:0.5:2*pi];>>>> y=sin(x);>>>> plot(x,y)先画点,后连线二、连线二、连线Matlab Programming3. 3. plot(x,y,stringplot(x,y,string) )n其中其中 string 是用是用 单引号单引号 括起来的字符串,用来指定图括起来的字符串,用来指定图形的属性(点、线的形状和颜色)形的属性(点、线的形状和颜色)n属性可以全部指定,也可以只指定其中某几个;属性可以全部指定,也可以只指定其中某几个;n排列顺序任意排列顺序任意>>>> x=[0:0.2:2*pi];>>>> plot(x,cos(x));>>>> plot(x,cos(x),’r+:’);>>>> plot(x,cos(x),’bd-.’);>>>> plot(x,cos(x),’k*-’);红色、虚线、红色、虚线、离散点用加号离散点用加号黑色、实线黑色、实线离散点用星号离散点用星号蓝色、点蓝色、点划线划线离散点为离散点为菱形菱形help plot 查看查看Matlab Programming图形的基本属性图形的基本属性线型线型点标记点标记颜色颜色- 实线实线: 虚线虚线-. 点划线点划线-- 间断线间断线. 点点o 小圆圈小圆圈x 叉子符叉子符+ 加号加号* 星号星号s 方格方格d 菱形菱形^ 朝上三角朝上三角v 朝下三角朝下三角> 朝右三角朝右三角< 朝左三角朝左三角p 五角星五角星h 六角星六角星y 黄色黄色 m 棕色棕色 c 蓝绿色蓝绿色r 红色红色g 绿色绿色b 蓝色蓝色w 白色白色k 黑色黑色Matlab Programming5.1.25.1.2函数函数fplotfplot()()nfplotfplot函数则可自适应地对函数进行采样,能更好地反函数则可自适应地对函数进行采样,能更好地反应函数的变化规律。
应函数的变化规律nfplotfplot函数格式:函数格式:fplot(fnamefplot(fname,,limslims,,toltol) )Ø其中其中fnamefname为函数名,以字符串形式出现,为函数名,以字符串形式出现,limslims为变量取值范围,为变量取值范围,toltol为相对允许误差,其系统默认值为为相对允许误差,其系统默认值为2e-32e-3n例如例如 fplot('[sin(x),cos(x)]',[0 2*pi],'-+')nfplot(‘[sin(x),cos(x)]’,[0 2*pi],1e-3,’.’) 同时绘制正弦、同时绘制正弦、余弦曲线余弦曲线Matlab Programmingn为为绘绘制制f(xf(x)=)=cos(tan(πxcos(tan(πx))))曲曲线线,,可可先先建建立立函函数数文文件件fct.mfct.m,其内容为:,其内容为:function y=function y=fct(xfct(x) ) y= y=cos(tan(picos(tan(pi*x));*x));用用fplotfplot函数调用函数调用fct.mfct.m函数,其命令为:函数,其命令为:fplot(‘fct’,[0 1],1e-4)fplot(‘fct’,[0 1],1e-4)例如:例如:[X,Y]=[X,Y]=fplot(@sin,[-pi,pi],2e-4);fplot(@sin,[-pi,pi],2e-4); size(X);size(X); fplot(@sin,[-pi,pi],2e-4); fplot(@sin,[-pi,pi],2e-4); size(X);size(X); X X,,Y Y是采样的自变量和对应的函数值是采样的自变量和对应的函数值Matlab Programming5.1.35.1.3函数函数ezplotezplot()()n函数函数ezplotezplot()()用于绘制在某一自变量区域内的图形;用于绘制在某一自变量区域内的图形;1 1、、ezplot(fezplot(f):):绘制默认区域绘制默认区域-2*pi 其用法是三维绘图中最常见的一种其用法:nplot3(x,y,z)plot3(x,y,z)::x, y and z are three vectors of x, y and z are three vectors of the same length, plots a line in 3-space the same length, plots a line in 3-space through the points whose coordinates are the through the points whose coordinates are the elements of x, y and zelements of x, y and znplot3(x,y,z), where x, y and z are three plot3(x,y,z), where x, y and z are three matrices of the same size, plots several matrices of the same size, plots several lines obtained from the columns of x, y and z.lines obtained from the columns of x, y and z.Matlab Programmingn例如例如 plot3(x,y,z,s)n曲线的参数方程为:曲线的参数方程为:x=x=x(t),yx(t),y= =y(t),zy(t),z= =z(tz(t),),则其图形则其图形可由该命令绘出。 可由该命令绘出例:三维螺旋线例:三维螺旋线t =[0:0.1:10*pi];>> x=2*t; >> y=sin(t); >> z=cos(t);>> plot3(x,y,z);Matlab Programmingq 例例::三维螺线三维螺线 MatlabMatlab 空间曲线绘图举例空间曲线绘图举例x=t, y=sin(t), z=cos(t), 0 < t < 201) 给出空间离散点的坐标给出空间离散点的坐标 (x,y,z) 2) 将这些点按顺序连接即可将这些点按顺序连接即可先画点,后连线Matlab Programming空间曲线作图举例空间曲线作图举例>> >> t=[0:0.5:20];>> >> x=t;>> >> y=sin(t);>> z>> z=cos(t);>> >> plot3(x,y,z,’.-’)>> >> t=[0:0.5:20];>> >> x=t;>> >> y=sin(t);>> z>> z=cos(t);>> >> plot3(x,y,z,’.’)Matlab Programming空间曲线作图举例空间曲线作图举例>> >> t=[0:0.1:20];>> >> x=t;>> >> y=sin(t);>> z>> z=cos(t);>> >> plot3(x,y,z)>> >> t=[0:0.1:20];>> >> x=t;>> >> y=sin(t);>> z>> z=cos(t);>> >> plot3(x,y,z,’.-’)Matlab Programming5.2.25.2.2空间三维作图空间三维作图meshmeshMatlab Programmingmesh, mesh, meshcmeshc, , meshzmeshznmesh(X,Y,Z,C)绘制由矩阵绘制由矩阵 X,Y,Z 所确定的曲面网格图,所确定的曲面网格图, C 用于确定用于确定网格颜色,省略时网格颜色,省略时 随随Z值成比例变化。 值成比例变化nmesh(Z) 绘出矩阵绘出矩阵 Z 的三维图的三维图nmesh(x,y,Z) x, y 是向量时,是向量时,length(x)=m,,length(y)=n,,[m,n]=size(Z)nmeshc 调用方式与调用方式与 mesh 相同,在相同,在 mesh 基础上增加等基础上增加等高线nmeshz调用方式与调用方式与 mesh 相同,在相同,在 mesh 基础上屏蔽边界基础上屏蔽边界Matlab Programming线线: 分别沿分别沿 x 方向和方向和 y 方向方向 连接这些点即可得到连接这些点即可得到空间曲面作图空间曲面作图先画点 (x,y,z),后连线,构成曲面网格图点点: :Matlab Programmingq 例:“墨西哥帽子”空间曲面作图举例空间曲面作图举例( –a < x < a, -a < y
网格矩阵,然后计算函数在各网格点上的值若若 x = y, 则可简写为则可简写为 [X,Y]= meshgrid(x)[X,Y]= meshgrid(x,y)>> >> x=[-8:0.5:8]; y=[-8:0.5:8];>> >> [X,Y]=meshgrid(x,y);>> >> r=sqrt(X.^2+Y.^2)+eps;>> >> Z=sin(r)./r; >> >> mesh(X,Y,Z)例:Matlab Programminga a=8 =8 时的曲面图形时的曲面图形空间曲面作图举例空间曲面作图举例>>>> x=[-8:0.5:8];>>>> y=[-8:0.5:8];>>>> [X,Y]=meshgrid(x,y);>>>> r=sqrt(X.^2+Y.^2)+eps;>>>> Z=sin(r)./r;>>>> mesh(X,Y,Z)1) x 与 y 可以取不同的步长2) 注意这里采用的数组运算[X,Y]=meshgrid([-8:0.5:8]);Matlab Programming例:绘制等高线例:绘制等高线 meshcmeshc空间曲面作图举例空间曲面作图举例>>>> [X,Y]=meshgrid(-8:0.5:8);>>>> r=sqrt(X.^2+Y.^2)+eps;>>>> Z=sin(r)./r;>>>> meshc(X,Y,Z)Matlab Programming例:绘制边界面屏蔽绘制边界面屏蔽 meshz空间曲面作图举例空间曲面作图举例>>>> [X,Y]=meshgrid(-8:0.5:8);>>>> r=sqrt(X.^2+Y.^2)+eps;>>>> Z=sin(r)./r;>>>> meshz(X,Y,Z)Matlab Programmingq 练习空间曲面作图举例空间曲面作图举例( –2 < x < 2, -2 < y <2 )Matlab Programmingn[x,y]=meshgrid(-2:0.1:2,-2:0.1:2); %定义定义x,y的范围的范围z=x.^2.*exp(-(x.^2+y.^2)); %定义关于定义关于x,y的映射的映射关系关系zmesh(z); %生成生成3D图形图形 Matlab Programming5.2.3 5.2.3 函数函数surf()surf()usurf(X,Y,Z) 绘制由矩阵绘制由矩阵 X,Y,Z 所确定的曲面图,参数所确定的曲面图,参数含义同含义同 mesh。 umesh 绘制网格图,绘制网格图,surf 绘制着色的三维表面图绘制着色的三维表面图usurf 作图举例作图举例 [X,Y]=meshgrid(-8:0.5:8); r=sqrt(X.^2+Y.^2)+eps; Z=sin(r)./r; surf(X,Y,Z)Matlab Programmingmesh mesh 与与 surf surf 的比较的比较Matlab Programming 作作 业业P107:P107: 1 1题、题、2 2题 。












