MATLAB三维散点图scatter3plote

上传人:平*** 文档编号:10548869 上传时间:2017-10-09 格式:PPTX 页数:49 大小:1.11MB
返回 下载 相关 举报
MATLAB三维散点图scatter3plote_第1页
第1页 / 共49页
MATLAB三维散点图scatter3plote_第2页
第2页 / 共49页
MATLAB三维散点图scatter3plote_第3页
第3页 / 共49页
MATLAB三维散点图scatter3plote_第4页
第4页 / 共49页
MATLAB三维散点图scatter3plote_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《MATLAB三维散点图scatter3plote》由会员分享,可在线阅读,更多相关《MATLAB三维散点图scatter3plote(49页珍藏版)》请在金锄头文库上搜索。

1、第三章 Matlab图形绘制主要内容3.1. 二维曲线的绘制3.2. 三维曲线的绘制3.3 三维网线图和曲面图的绘制3.4 Matlab图形处理的基本技术3.5 动画技术3.6 图形用户界面设计3.1 二维曲线的绘制1、绘制二维图形最常用的函数是 plot,调用格式有以下四种:( 1) plot(Y) 如果 Y为实向量,则以 Y的索引坐标作为横坐标,以 Y本身的元素作为纵坐标。如果 Y为复数向量,则以该向量实部为横坐标,虚部为纵坐标。( 2) plot(X,Y)此时以 X为横坐标, Y为纵坐标。 X和 Y要求维数必须相同。当变量 X和 Y是同阶矩阵时,将按照矩阵的行或列进行操作。( 3) pl

2、ot(X,Y,s) 第三个变量用于设置图形显示属性。设置图形的 线型、颜色、标记 等。( 4) plot(X1,Y1,s1,X2,Y2,s2,.) 每三项为一组绘制多条曲线。y=rand(100,1);plot(y)x=rand(100,1);z=x+y.*i;plot(z)示例:x=0:0.01*pi:2*pi;y=sin(x),cos(x);plot(x,x,y);x=0:0.01*pi:pi;y=sin(x);z=cos(x);plot(x,y,-k,x,z,-.rd);Matlab绘图命令中的各种选项曲线线型 曲线颜色 标记符号选项 意义 选项 意义 选项 意义- 实线 b 蓝色 *

3、星号- 虚线 g 绿色 . 点号: 点线 m 红紫色 x 叉号-. 点划线 w 白色 v none 无线 c 蓝绿色 k 黑色 r 红色 O 圆圈p 五角星y 黄色s 方块d 菱形h 六角星=1);fplot(fun2,-3,3)(2) ezplot(f)可用来绘制显函数、隐函数和参数方程的图形, x轴的默认范围为 -2pi,2pi。1)对于显函数 y=f(x),调用格式为: ezplot(f,xmin,xmax)2)对于隐函数 f(x,y)=0,调用格式为: ezplot(f,xmin,xmax,ymin,ymax)ezplot(f,a,b),x与 y在( a,b)区间之内。3)对于参数方程

4、 x=x(t),y=y(t),调用格式为:ezplot(x,y)或者 ezplot(f,tmin,tmax)示例 1: ezplot(x2*sin(x+y2)+y2*exp(x+y)+5*cos(x2+y),-10 10);示例 2: ezplot(cot(x)示例 3: ezplot(x2+y2/4=1)示例 4: ezplot(x2+y2-1,-1,1,-1,1)示例 5: ezplot(x3+y3-5*x*y)示例 6:ezplot(2*cos(t),sin(t),0,2*pi);3.2 三维曲线的绘制绘制三维曲线的函数是 plot3,与 plot函数的调用格式相同,也有以下四种:plo

5、t3(x,y,z)plot3(X,Y,Z) X,Y,Z是相同阶数的矩阵,绘出三矩阵的列向量的曲线。plot3(X,Y,Z,s)plot3(x1,y1,z1,s1,x2,y2,z2,s2,.)组合图形以第二种形式为例: x,y=meshgrid(-2:0.1:2,-2:0.1:2);z=x.*exp(-x.2-y.2);plot3(x,y,z)函数名 说 明 函数名 说 明mesh 三 维 网格 图 meshc 将网格与等高 线结 合meshz 屏蔽的网格 图 meshgrid 生成网格点MATLAB对于网格的处理方法是:将 xy平面按指定方式分隔成 平面网格 ,然后根据程序中给定的方式计算第三

6、维变量的值,即 z轴的值,与对应的 xy平面的坐标构成三维点元素,根据由此得到的 (x,z)和 (y,z)计算各平面的曲线,彼此相连就构成了网格图。3.3 三维网线图和曲面图的绘制( 1)网线图 mesh函数X,Y=meshgrid(x,y) x和 y是给定的向量,可以定义网格的划分区域,也可以定义网格的划分方法, X和 Y是网格划分后的数值矩阵。mesh(X,Y,Z,C)绘制四个矩阵变量的彩色网格面图形,观测点由 view定义,坐标轴由 axis定义, C设置颜色,由 colormap实现。mesh(X,Y,Z) 使用 C=Z,即颜色正比于图高。mesh(x,y,Z,C)由两个向量代替矩阵,

7、要求 length(x)=n,length(y)=m,且m,n=size(Z)示例 1: x=-2:0.1:2;y=-2:0.1:2;xx,yy=meshgrid(x,y);zz=xx.2+yy.2;%ii=find(xx.2+yy.24);zz(ii)=NaN;surf(xx,yy,zz);x=-10:0.5:10;y=-8:0.5:8;x,y=meshgrid(x,y);z=sin(sqrt(x.2+y.2)./sqrt(x.2+y.2);mesh(x,y,z);示例 2:( 2)着色函数 surfsurf(X,Y,Z,C)输入参数的设置和 mesh相同,不同的是 mesh绘制的是网格图,

8、而 surf绘制的着色的三维表面。两者对比如下图所示函数名 说明 函数名 说明 函数名 说明bar3 三维条形图 surfc 着色图 +等高线 comet3 三维彗星图trisurf 三角形表面图 ezgraph3 函数控制绘制图 waterfall 瀑布图pie3 三维饼状图 scatter3 三维散射图 cylinder 柱面图stem3 三维离散数据图 sphere 球面图 trimesh 三角形网格图( 3)特殊的三维绘图命令( 4)旋转曲面图 cylinderX,Y,Z=cylinder(r)这里的 r表示构成旋转曲面的曲线。方法一: Matlab程序如下。 x=0:10:600;

9、X,Y,Z=cylinder(30*exp(-x/400).*sin(x+25*pi)/100)+130); surf(X,Y,Z)方法二:将旋转曲面用参数方程表示。 解 因为这里的函数是隐函数,化成显函数后有两支,必须使用参数方程,旋转面的参数方程为 画图的 Matlab程序如下:alpha=0:0.1:2*pi; beta=0:0.1:2*pi; x=4*cos(alpha)*ones(size(beta); y=(5+4*sin(alpha)*cos(beta); z=(5+4*sin(alpha)*sin(beta); surf(x,y,z)画图的 Matlab程序也可以写成 x=(a

10、lpha,beta) 4*cos(alpha); y=(alpha,beta) (5+4*sin(alpha)*cos(beta); z=(alpha,beta) (5+4*sin(alpha)*sin(beta); ezsurf(x,y,z)( 5)绘制柱面图柱面平行于某个坐标轴,方程中不出现某个坐标轴的变量,方程表示为 F(x,y)=0或者 F(x,z)=0或者 F(y,z)=0示例一:画出方程 表示的柱面解:方程中的 x是自变量矩阵, z是因变量,则另一个自变量矩阵为 y,自变量平面是 xoy面, x轴是真正的自变量, y轴是柱面方向。 Matlab程序如下:u=linspace(-5,

11、5,10);%设定参数列向量 uv=linspace(-5,10,10); %设定参数行向量 vX=u*ones(size(v); %构成自变量矩阵 XY=ones(size(u)*v; %构成自变量矩阵 YZ=2-X.2; %求因变量 Zmesh(X,Y,Z)( 6)其他二次曲面Matlab中使用绘图命令 ezmesh或 ezsurf也很方便,只需要把曲面方程写成两个变量的显函数方程或参数方程即可。对于旋转面,如果母线的方程可以表示成关于旋转轴变量的显式函数,则可以直接使用 Matlab工具箱中的命令 cylinder,否则必须把旋转面化成参数方程,然后使用 ezmesh或 ezsurf命令

12、绘图。对于其它的二次曲面,如果可以写成显函数直接使用命令 ezmesh或 ezsurf,否则必须先化成参数方程。几个示例:( 1) x=(s,t)3*tan(s)*cos(t);y=(s,t)2*tan(s)*sin(t);z=(s,t)tan(s);ezsurf(x,y,z)( 2) ellipsoid(0,0,0,3,2,sqrt(6)( 3) ezsurf(x,y)x*y)( 4) x=(s,t)3*cos(s);y=(s,t)2*sin(s);z=(s,t)t;ezmesh(x,y,z)( 7)Matlab三维散点插值曲面图的绘制1、 scatter3函数,调用方法: scatter3

13、(X,Y,Z)示例 1: x,y,z=sphere(16);X=x(:)*.5x(:)*.75x(:);Y=y(:)*.5y(:)*.75y(:);Z=z(:)*.5z(:)*.75z(:);S=repmat(1.75.5*10,numel(x),1);C=repmat(123,numel(x),1);scatter3(X(:),Y(:),Z(:),S(:),C(:),filled),view(-60,60)示例 2: x=4229042.634230585.024231384.964231773.634233028.584233296.714235869.684236288.29;y=431

14、695.4441585.8432745.6436933.7428734.4431946.3428705.0432999.5;z=1.0191.0231.0111.0221.0201.0221.0221.023;scatter3(x,y,z)2、 griddata函数,用来产生经插值后均匀间隔数据作图。常用的调用方法是: XI,YI,ZI=griddata(x,y,z,XI,YI,method),其中 x,y,z来自关系式z=f(x,y),也可以是离散的数据点, ZI是有 XI和 YI插值后得到的对应点。其中 method可以是 linear, cubic和 nearest。V1=110;-110;-1-10;1-10;x=V1(:,1);y=V1(:,2);z=V1(:,3);xmin=min(x);xmax=max(x);ymin=min(y);ymax=max(y);x0=linspace(xmin,xmax,20);y0=linspace(ymin,ymax,20);x0,y0=meshgrid(x0,y0);z0=griddata(x,y,z,x0,y0,v4);figure;holdon;view(3);plot3(x,y,z,r.,MarkerSize,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号