最新matlab各种三维绘图及实例
1Matlab绘制三维图形2三维曲线3plot3函数与plot函数用法十分相似,其调用格式为:4plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)5其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
6当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同7维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
8例绘制三维曲线。
9程序如下:10t=0:pi/100:20*pi;11x=sin(t);12y=cos(t);13z=t.*sin(t).*cos(t);14plot3(x,y,z);15title('Line in 3-D Space');16xlabel('X');ylabel('Y');zlabel('Z');1718三维曲面191.产生三维数据20在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格21式为:22x=a:d1:b; y=c:d2:d;23[X,Y]=meshgrid(x,y);24语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,25矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
262.绘制三维曲面的函数27surf函数和mesh函数的调用格式为:28mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
29surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
30一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点31上的高度矩阵,c用于指定在不同高度下的颜色范围。
32例绘制三维曲面图z=sin(x+sin(y))-x/10。
33程序如下:34[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐35标36z=sin(x+sin(y))-x/10;37mesh(x,y,z);38axis([0 4*pi 0 4*pi -2.5 1]);39此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面40函数meshz。
其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z 41轴方向的等高线,meshz还在xy平面上绘制曲面的底座。
42例在xy平面内选择区域[-8,8]×[-8,8],绘制4种三维曲面图。
43程序如下:44[x,y]=meshgrid(-8:0.5:8);45z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);46subplot(2,2,1);47mesh(x,y,z);48title('mesh(x,y,z)')49subplot(2,2,2);50meshc(x,y,z);51title('meshc(x,y,z)')52subplot(2,2,3);53meshz(x,y,z)54title('meshz(x,y,z)')55subplot(2,2,4);56surf(x,y,z);57title('surf(x,y,z)')583.标准三维曲面59sphere函数的调用格式为:60[x,y,z]=sphere(n):generates three (N+1)-by-(N+1) matrices so that 61SURF(X,Y,Z) produces a unit sphere.62cylinder函数的调用格式为:63[x,y,z]= cylinder(R,n),其中r为圆周半径,n为组成圆周的点数。
64MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。
65例绘制标准三维曲面图形。
66程序如下:67t=0:pi/20:2*pi;68[x,y,z]= cylinder(2+sin(t),30);69subplot(2,2,1);70surf(x,y,z);71subplot(2,2,2);72[x,y,z]=sphere;73surf(x,y,z);74subplot(2,1,2);75[x,y,z]=peaks(30);76surf(x,y,z);7778其他三维图形79在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它80们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。
81bar3函数绘制三维条形图,常用格式为:82bar3(y)83bar3(x,y)84stem3函数绘制离散序列数据的三维杆图,常用格式为:85stem3(z)86stem3(x,y,z)87pie3函数绘制三维饼图,常用格式为:88pie3(x)89fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,90常用格式为:91fill3(x,y,z,c)92例绘制三维图形:93(1) 绘制魔方阵的三维条形图。
94(2) 以三维杆图形式绘制曲线y=2sin(x)。
95(3) 已知x=[2347,1827,2043,3025],绘制饼图。
96(4) 用随机的顶点坐标值画出五个黄色三角形。
97程序如下:98subplot(2,2,1);99bar3(magic(4))100subplot(2,2,2);101y=2*sin(0:pi/10:2*pi);102stem3(y);103subplot(2,2,3);104pie3([2347,1827,2043,3025]);105subplot(2,2,4);106fill3(rand(3,5),rand(3,5),rand(3,5), 'y' ) 107例绘制多峰函数的瀑布图和等高线图。
108程序如下:109subplot(1,2,1);110[X,Y,Z]=peaks(30);111waterfall(X,Y,Z)112xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');113subplot(1,2,2);114contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数115xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');116图形修饰处理117视点处理118MATLAB提供了设置视点的函数view,其调用格式为:119view(az,el)120其中az为方位角,el为仰角,它们均以度为单位。
系统缺省的视点定义为121方位角-37.5°,仰角30°。
122例从不同视点绘制多峰函数曲面。
123程序如下:124subplot(2,2,1);mesh(peaks);125view(-37.5,30); %指定子图1的视点126title('azimuth=-37.5,elevation=30')127subplot(2,2,2);mesh(peaks);128view(0,90); %指定子图2的视点129title('azimuth=0,elevation=90')130subplot(2,2,3);mesh(peaks);131view(90,0); %指定子图3的视点132title('azimuth=90,elevation=0')133subplot(2,2,4);mesh(peaks);134view(-7,-10); %指定子图4的视点135title('azimuth=-7,elevation=-10')136色彩处理1371.颜色的向量表示138MATLAB除用字符表示颜色外,还可以用含有3个元素的向量表示颜色。
向139量元素在[0,1]范围取值,3个元素分别表示红、绿、蓝3种颜色的相对亮度,140称为RGB三元组。
1412.色图142色图(Color map)是MATLAB系统引入的概念。
在MATLAB中,每个图形窗口143只能有一个色图。
色图是m×3 的数值矩阵,它的每一行是RGB三元组。
色图矩144阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。
1453.三维表面图形的着色146三维表面图实际上就是在网格图的每一个网格片上涂上颜色。
surf函数用147缺省的着色方式对网格片着色。
除此之外,还可以用shading命令来改变着色148方式。
149shading faceted命令将每个网格片用其高度对应的颜色进行着色,但网格150线仍保留着,其shading flat命令将每个网格片用同一个颜色进行着色,且网151格线也用相应的颜色,从而使得图形表面显得更加光滑。
152shading interp命令在网格片内采用颜色插值处理,得出的表面图显得最153光滑。
154颜色是黑色。
这是系统的缺省着色方式155例3种图形着色方式的效果展示。
156程序如下:157[x,y,z]=sphere(20);158colormap(copper);159subplot(1,3,1);160surf(x,y,z);161axis equal162subplot(1,3,2);163surf(x,y,z);shading flat;164axis equal165subplot(1,3,3);166surf(x,y,z);shading interp;167axis equal168光照处理169MATLAB提供了灯光设置的函数,其调用格式为:170light('Color',选项1,'Style',选项2,'Position',选项3) 171光照处理后的球面。
172程序如下:173[x,y,z]=sphere(20);174subplot(1,2,1);175surf(x,y,z);axis equal;176light('Posi',[0,1,1]);177shading interp;178hold on;179plot3(0,1,1,'p');text(0,1,1,' light');180subplot(1,2,2);181surf(x,y,z);axis equal;182light('Posi',[1,0,1]);183shading interp;184hold on;185plot3(1,0,1,'p');text(1,0,1,' light');186图形的裁剪处理187例4-22 绘制三维曲面图,并进行插值着色处理,裁掉图中x和y都小于1880部分。
上机习题6 MATLAB7.0三维绘图
实验六MATLAB7.0三维绘图实验目的:①掌握绘制三维图能形的方法;②掌握图形修饰处理方法;③知道图像处理方法,了解动画制作方法。
实验要求:给出程序和实验结果。
实验内容:一、绘制三维曲线sin()cos()sin()cos()x ty tz t t t=⎧⎪=⎨⎪=⎩二、绘制三维曲面图z=sin(x+sin(y))-x/10。
三、绘制z=x2+y2的三维网线图形;四、绘制三维陀螺锥面;(仅供参考:t1=0:0.1:0.9;t2=1:0.1:2;r=[t1 -t2+2];[x,y,z]=cylinder(r,30);surf(x,y,z);grid)五、在xy平面内选择区域[-8,8]×[-8,8],利用mesh、meshc、meshz和surf绘制z=六、绘制光照处理后的球面,取三个不同的光照位置进行比较。
(提示:可以利用函数sphere和 light)七、利用peaks产生数据,绘制多峰曲面图。
八.22yxxez--=,当x和y的取值范围均为-2到2时,用建立子窗口的方法在同一个图形窗口中绘制出三维线图、网线图、表面图和带渲染效果的表面图。
九绘制peaks函数的表面图,用colormap函数改变预置的色图,观察色彩的分布情况。
十、用sphere函数产生球表面坐标,绘制不透明网线图、透明网线图、表面图和带剪孔的表面图。
十一、将5.9题中的带剪孔的球形表面图的坐标改变为正方形,以使球面看起来是圆的而不是椭圆的,然后关闭坐标轴的显示。
实验结果:(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)。
matlab绘图(一维、二维、三维)
>> t=[0:0.1:20];
>> x=t;
>> y=sin(t); >> z=cos(t); >> plot3(x,y,z)
第25页,共42页。
数学实验
数学实验
先画点 (x,y,z),后连线,构成曲面网格图
点: ( xij , yij , zij ) i 1,,m, j 1,,n
x11 x12
第13页,共42页。
同时绘制多个函数图像
数学实验
plot(x1,y1,s1,x2,y2,s2, ... ,xn,yn,sn)
等价于:
hold on
plot(x1,y1,s1) plot(x2,y2,s2) ...
plot(xn,yn,sn)
属性选项 可以省略
第14页,共42页。
图形的其他属性
数学实验
Property: linewidth, markersize, fontsize, fontweight, fontname, …
第9页,共42页。
图形的其他属性
坐标轴标注 xlabel(’text’) 或 ylabel(’text’)
例:
数学实验
第10页,共42页。
图形的其他属性
添加图例 legend(string1,string2, ...) >> legend('cos(x)');
Matlab 绘图
数学实验
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
第1页,共42页。
Matlab 绘图
数学实验
手工作图
找点: x=0, pi/3, pi/2, 2*pi/3, pi, …
matlab三维绘图
例4-34 利用rotate函数,从不同角度查看函数 z xe
x y
2
2
t=-2:.1:2; [x,y]=meshgrid(t); z=x.*exp(-x.^2-y.^2); subplot(121),mesh(x,y,z); subplot(122),h=mesh(x,y,z) rotate(h,[-2,-2,0],30,[2,2,0])
透视控制命令hidden
Matlab在绘制三维网线图和曲面图时,一般进行消 隐处理,为得到透视效果,用以下命令:
hidden on 消隐被遮挡的图形 hidden off 透视被遮挡的图形
[x0,y0,z0]=sphere(30); X=2*x0;Y=2*y0;Z=2*z0; surf(x0,y0,z0); %画里面的小球 shading interp %使用插值的方式进行着色 hold on,mesh(X,Y,Z),colormap(hot), hold off hidden off %透视外面大球看到里面小球 axis equal,axis off %坐标轴三个方向上刻度增量相同,并消隐坐标轴
见P70 例4-36
图形颜色控制命令colormap
colormap([R,G,B]) 用单色绘图, [R,G,B]代表一 个配色方案,取值在[0,1]之间。通过对R、G、B大 小的设置,可以调制出不同的颜色。p71表4-5 colormap(CM) CM为色图矩阵。色图为m*3的矩 阵。Matlab预定义了一些色图矩阵的值,表4-6为 常用的色图矩阵。
北京科技大学数学实验
北京科技大学数学实验
例
用平行截面法讨论由方程构成的马鞍面形状。
解:Matlab命令为
Matlab 3D 绘图
Matlab 3D 插值绘图绘制图像:1、需要有X,Y,Z三个参数,且X,Y,Z都是列向量。
2、生成3D插值矩阵:Xi=linspace(min(x),max(x),100); %100为插值的步长Yi=linspace(min(y),max(y),100); %100为插值的步长[Xi,Yi,Zi]=griddata(x,y,z,Xi',Yi,'v4') %直接生成3D插值矩阵Xi需转置3、绘图:surf(X,Y,Z),mesh(X,Y,Z) %surf是曲面,mesh是网格颜色调整:1、shading:用于处理颜色效果1)no shading:一般默认模式,即shading faceted2)shading flat :在faceted基础上去掉图网格线3)shading interp:在flat基础进行色彩插值处理,使色彩平滑过渡4)使用示例:该命令在surf画图命令之后使用:surf(X,Y,Z); %画三维曲面,mesh为网格shading interp; %颜色插值光滑处理shading facetedshading flatshading interp绘图命令类型:1、二维深度图:画出二维图像,用颜色申深浅表示高度pcolor(X,Y,Z);shading interp;%画出二维深度图,并且插值光滑2、二维等高线图:画出等高线图contourf(X,Y,Z) %等高线图%画出等高线图二维深度图像二维等高线图3、三维图:mesh(X,Y,Z); %画出三维网格surf(X,Y,Z); %画出三维曲面plot3(X,Y,Z); %画出三维曲线meshsurfplot3。
最新matlab各种三维绘图及实例
最新matlab各种三维绘图及实例1Matlab绘制三维图形2三维曲线3plot3函数与plot函数用法十分相似,其调用格式为:4plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)5其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
6当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同7维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
8例绘制三维曲线。
9程序如下:10t=0:pi/100:20*pi;11x=sin(t);12y=cos(t);13z=t.*sin(t).*cos(t);14plot3(x,y,z);15title('Line in 3-D Space');16xlabel('X');ylabel('Y');zlabel('Z');1718三维曲面191.产生三维数据20在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格21式为:22x=a:d1:b; y=c:d2:d;23[X,Y]=meshgrid(x,y);24语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,25矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
262.绘制三维曲面的函数27surf函数和mesh函数的调用格式为:28mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
29surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点31上的高度矩阵,c用于指定在不同高度下的颜色范围。
32例绘制三维曲面图z=sin(x+sin(y))-x/10。
33程序如下:34[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐35标36z=sin(x+sin(y))-x/10;37mesh(x,y,z);38axis([0 4*pi 0 4*pi -2.5 1]);39此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面40函数meshz。
matlab三维绘图
三维线图函数
● 例 题 : 绘 制 三 维 的 螺 旋 曲 线 图 , 其 中 x=sint, y=cos(2t),z=sint+cost,t的区间为[0,2π]。 程序如下: t=0:pi/50:2*pi; plot3(sin(t),cos(2*t),sin(t)+cos(t),'r','Linewidth',2) xlabel('X轴') ylabel('Y轴') zlabel('Z轴')
●例题:绘制多个球体,各球的中心离原点的距离由x、y、z 值决定。 程序如下: [x,y,z]=sphere; surf(x,y,z) hold on surf(x+3,y-2,z) surf(x,y+1,z-3) daspect([1 1 1]) xlabel('X轴') ylabel('Y轴') zlabel('Z轴')
三维网格图
●所谓的网格图,是指把相邻的数据点连接起来形 成的网状曲面。利用在x-y平面的矩形网格点上的 z轴坐标值,MATLAB定义了一个网格曲面。三维 网格图的形成原理为:在x-y平面上指定一个长方 形区域,采用与坐标轴平行的直线将其分格;计 算矩形网格点上的函数值,即z轴的值,得到三 维空间的数据点;将这些数据点分别用于x-z或者 平行面内的曲线和处于y-z或者平行面内的曲线连 接起来,即形成网格图。网格图对显示大型的数 值矩阵很有用处。
模块十 三维图形绘制
◆三维线图 ◆三维多边形 ◆三维网格图 ◆三维曲面图 ◆三维柱面绘图函数
三维线图函数
● plot3():主要用于绘制三维曲线,该函数的 调用格式同plot()函数类似。 ● 调用格式为: plot3(X, Y, Z, LineSpec,’ PropertyName’, Property Value) 调用该函数,绘制出通过一系列坐标为X, Y, Z 指定点的一条曲线。其中,X, Y, Z为第一到第 三维数据,可以是向量,也可以是矩阵,但必 须尺寸相等。
matlab画图大全[资料]
matlab绘图大全Matlab绘图系列之高级绘图一、目录1.彗星图二维彗星图三维彗星图2.帧动画3.程序动画4.色图变换5.Voronoi图和三角剖分Voronoi图三角剖分6.四面体7.彩带图彩带图三维流彩带图8.伪彩图9.切片图切片图切片轮廓线图10.轮廓图显示轮廓线显示围裙瀑布效果带光照模式的阴影图11.函数绘图轮廓线、网格图、曲面图、轮廓网格图轮廓曲面图、二维曲线、极坐标曲线图、自定义函数12.三维图形控制视点灯光效果色彩控制二、图形示例1.彗星图二维彗星图t=0:.01:2*pi;x=cos(2*t).*(cos(t).^2);y=sin(2*t).*(sin(t).^2);comet(x,y);title('二维彗星轨迹图')hold onplot(x,y)三维彗星图a=12;b=9;T0=2*pi;%T0是轨道的周期T=5*T0;dt=pi/100;t=[0:dt:T]';f=sqrt(a^2-b^2);%地球与另一焦点的距离th=12.5*pi/180;%未经轨道与x-y平面的倾角E=exp(-t/20);%轨道收缩率x=E.*(a*cos(t)-f);y=E.*(b*cos(th)*sin(t));z=E.*(b*sin(th)*sin(t));plot3(x,y,z,'g')%画全程轨线hold on,sphere(20);%画地球axis offtitle('卫星返回地球示例')x1=-18*T0;x2=6*T0;y1=-12*T0;y2=12*T0;z1=-6*T0;z2=6*T0;axis([x1 x2 y1 y2 z1 z2])% axis([-15 10 -15 10 -10 10])axis equalcomet3(x,y,z,0.02);%画运动轨线hold off2.帧动画Z=peaks;surf(Z)%绘制网格表面图axis tightset(gca,'nextplot','replacechildren');%设定axis覆盖重画模式title('帧动画播放示例')for j=1:20surf(sin(2*pi*j/20)*Z,Z)%重新绘制网格表面图,这里后面一个Z当成了颜色矩阵F(j)=getframe;%创建帧endmovie(F,20)%播放动画20次3.程序动画t=0:pi/50:10*pii=1;h=plot3(sin(t(i)),cos(t(i)),t(i),'*','erasemode','none');%设定擦除模式grid onaxis([-2 2 -2 2 -1 10*pi])title('程序动画示例')for i=2:length(t)set(h,'xdata',sin(t(i)),'ydata',cos(t(i)),'zdata',t(i));drawnowpause(0.01)end4.色图变换load spineimage(X)colormap coolspinmap(10)5.Voronoi图和三角剖分Voronoi图rand('state',5)x=rand(1,10);y=rand(1,10);subplot(131)voronoi(x,y);%绘制voronoi图形axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(132)[vx,vy]=voronoi(x,y);plot(x,y,'r+',vx,vy,'b-');%应用返回值绘制axis equalaxis([-0.2 1.6 -0.5 2.5])subplot(133)rand('state',5);x=rand(10,2);[v,c]=voronoin(x);%返回值v参数维voronoi顶点矩阵,返回值c 参数为voronoi元胞数组for i=1:length(c)if all(c{i}~=1)patch(v(c{i},1),v(c{i},2),i);%应用色图iendendaxis equalaxis([-0.2 1.6 -0.5 2.5])box on三角剖分[x,y]=meshgrid(1:15,1:15);tri=delaunay(x,y);z=peaks(15);trimesh(tri,x,y,z)6.四面体d=[-1 1];[x,y,z]=meshgrid(d,d,d);%定义一个立方体x=[x(:);0];y=[y(:);0];z=[z(:);0];%[x,y,z]分别为加上中心的立方体顶点X=[x(:) y(:) z(:)];Tes=delaunayn(X);%返回m×n的数组值tetramesh(Tes,X);%绘制四面体图camorbit(20,0);%旋转摄像目标位置7.彩带图彩带图[x,y]=meshgrid(-3:.5:3,-3:.1:3);z=peaks(x,y);ribbon(y,z)三维流彩带图load wind%打开保存的数据lims=[100.64 116.67 17.25 28.75 -0.02 6.86];%定义坐标轴范围[x,y,z,u,v,w]=subvolume(x,y,z,u,v,w,lims);%lims来定义数据子集[sx sy sz]=meshgrid(110,20:5:30,1:5);%定义网格点verts=stream3(x,y,z,u,v,w,sx,sy,sz,.5);%计算彩带顶点cav=curl(x,y,z,u,v,w);%计算卷曲角速度wind_speed=sqrt(u.^2+v.^2+w.^2);%计算流速h=streamribbon(verts,x,y,z,cav,wind_speed,2);%绘制流彩带图view(3)8.伪彩图n=6%定义轮数r=(0:n)'/n;%定义轮的半径theta=pi*(-n:n)/n;%定义轮的扇区角X=r*cos(theta);Y=r*sin(theta);%定义网格顶点C=r*cos(2*theta);%定义色图pcolor(X,Y,C)%绘制伪彩图axis equal tight9.切片图切片图[x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2);v = x.*exp(-x.^2-y.^2-z.^2);xslice = [-1.2,.8,2]; yslice = 2; zslice = [-2,0];slice(x,y,z,v,xslice,yslice,zslice)colormap hsv切片轮廓线图[x y z v]=flow;%打开水流数据h=contourslice(x,y,z,v,[1:9],[],[0],linspace(-8,2,10));%切片轮廓线view([-12 30])10.轮廓图显示轮廓线[x,y,z]=peaks;subplot(1,2,1)meshc(x,y,z);%同时画出网格图与轮廓线title('meshc 网格图与轮廓线')axis([-inf inf -inf inf -inf inf]);subplot(1,2,2)surfc(x,y,z);%同时画出曲面图与轮廓线title('surfc 曲面图与轮廓线')axis([-inf inf -inf inf -inf inf]);显示围裙[x y z]=peaks;meshz(x,y,z);瀑布效果[X,Y,Z]=peaks(30);waterfall(X,Y,Z)带光照模式的阴影图[x,y]=meshgrid(-3:1/8:3);z=peaks(x,y);surfl(x,y,z);shading interp%着色处理colormap(gray);%灰度处理axis([-3 3 -3 3 -8 8])11.函数绘图轮廓线、网格图、曲面图、轮廓网格图%图1绘制轮廓线、网格图、曲面图、轮廓网格图subplot(221)f=['3*(1-x)^2*exp(-(x^2)-(y+1)^2)-10*(x/5-x^3-y^5)*exp(-x^2-y^2)-1/3*exp(-(x+1)^2-y^2)'];%定义双变量x、y的函数式ezcontour(f,[-3,3],49)%x、y为[-3 3],网格为49×49subplot(222)ezmesh('sqrt(x^2+y^2)');subplot(223)ezsurf('real(atan(x+i*y))')%经过滤波,如果相同数据surf绘图没有滤波subplot(224)ezmeshc('y/(1+x^2+y^2)',[-5,5,-2*pi,2*pi])%x、y的数值范围分别为[-5 5]、[-2*pi 2*pi]轮廓曲面图、二维曲线、极坐标曲线图、自定义函数%图2绘制轮廓曲面图、二维曲线、极坐标曲线图、自定义函数figure(2)subplot(221)ezsurfc('sin(u)*sin(v)')subplot(222)ezplot('x^2-y^4');subplot(223)ezpolar('1+cos(t)')subplot(224)fplot('myfun',[-20 20])function Y=myfun(x)Y(:,1)=200*sin(x(:))./x(:);Y(:,2)=x(:).^2;三维曲线图%绘制三维曲线图figure(3)ezplot3('sin(t)','cos(t)','t',[0,6*pi])12.三维图形控制视点View图形旋转subplot(121)surf(peaks);title('旋转前图形');subplot(122)h=surf(peaks);rotate(h,[1 0 1],180)title('旋转后图形');灯光效果%灯光效果(1)camlight(2)light(3)lightangle(4)lighting(5)materialsphere;camlight色彩控制%色彩控制(1)缺省设置colordef、whitebg(2)色图colormap(3)浓淡处理shadingload flujetimage(X)colormap(jet)subplot(131)sphere(16)axis squareshading flattitle('Flat Shading')subplot(132)sphere(16)axis squareshading facetedtitle('Faceted Shading') subplot(133)sphere(16)axis squareshading interptitle('Interpolated Shading')。
Matlab 三维立体绘图
– 請劃出其網狀圖形,並標示x座標、y座標以及給定的 點座標。 – 請劃出其曲面圖形,並標示x座標、y座標以及給定的 點座標。
8
4-1 基本立體繪圖指令
1 2 3 4
0 3 4 7
2 2 4 6
% 標示曲面高度
set(h, 'hori', 'center', 'vertical', 'bottom', 'color', 'r'); % 改變位置及顏色
5
3
1 4 4 8
4-1 基本立體繪圖指令
– 範例4-2 :plotxyz002.m
8
8 7 6
6 4 4 4 4
– 範例4-5 :plotxyz02.m surf 和 mesh 指令的用法類似
x = linspace(-2, 2, 25); y = linspace(-2, 2, 25); % 在 x 軸 [-2,2] 之間取 25 點 % 在 y 軸 [-2,2] 之間取 25 點
[xx,yy] = meshgrid(x, y);
2
Matrix Indexing Coordinate
• Conversion from matrix indexing to x-y coordinates
– Jx – Iy
1
j (= x)
2
1 2 3 4
0 3 4 7
2 2 4 6
3
1 4 4 8
(i, j) = (3, 2)
A(4,3)=8 A(3,2)=4
matlab三维绘图命令和演示
三维绘图1三维绘图指令2基本XYZ 立体绘图命令●mesh 和plot 是三度空间立体绘图的基本命令,mesh 可画出立体网状图,plot 则可画出立体曲面图,两者产生的图形都会依高度而有不同颜色。
下列命令可画出由函数形成的立体网状图:x=linspace(-2,2,25);%在x 轴上取25点 y=linspace(-2,2,25);%在y 轴上取25点[xx,yy]=meshgrid(x,y);%xx 和yy 都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz 也是21x21的矩阵 mesh(xx,yy,zz);%画出立体网状图● surf 和mesh 的用法类似:x=linspace(-2,2,25);%在x 轴上取25点y=linspace(-2,2,25);%在y轴上取25点[xx,yy]=meshgrid(x,y);%xx和yy都是25x25的矩阵zz=xx.*exp(-xx.^2-yy.^2);%计算函数值,zz也是25x25的矩阵surf(xx,yy,zz);%画出立体曲面图●peaks为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:要画出此函数的最快方法即是直接键入peaks:peaksz=3*(1-x).^2.*exp(-(x.^2)-(y+1).^2)-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)-1/3*exp(-(x+1).^2-y.^2)●我们亦可对peaks函数取点,再以各种不同方法进行绘图。
meshz可将曲面加上围裙:[x,y,z]=peaks;meshz(x,y,z);●waterfall可在x方向或y方向产生水流效果:[x,y,z]=peaks;waterfall(x,y,z);●下列命令产生在y方向的水流效果:[x,y,z]=peaks;waterfall(x',y',z');●meshc同时画出网状图与等高线:[x,y,z]=peaks;meshc(x,y,z);●surfc同时画出曲面图与等高线:[x,y,z]=peaks;surfc(x,y,z);●contour3画出曲面在三度空间中的等高线:contour3(peaks,20);●contour画出曲面等高线在XY平面的投影:contour(peaks,20);●plot3可画出三度空间中的曲线:t=linspace(0,20*pi,501);plot3(t.*sin(t),t.*cos(t),t);亦可同时画出两条三度空间中的曲线:t=linspace(0,10*pi,501);plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t);3三维绘图的主要功能绘制三维线图绘制等高线图绘制伪彩色图绘制三维网线图?绘制三维曲面图、柱面图和球面图?绘制三维多面体并填充颜色(一)三维线图plot3?——?基本的三维图形指令调用格式:plot3(x,y,z)?——?x,y,z是长度相同的向量plot3(X,Y,Z)?——?X,Y,Z是维数相同的矩阵plot3(x,y,z,s)?——?带开关量plot3(x1,y1,z1,’s1’,?x2,y2,z2,’s2’,?…)二维图形的所有基本特性对三维图形全都适用。
matlab 三维立体绘图
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
范例4-7:plotxyz04.m
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
范例4-12:plotxyz09.m
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
4-1 基本立体绘图指令
整理:基本三维立体绘图指令的列表
类别 指令 mesh, ezmesh 网状图 meshc, ezmeshc meshz surf, ezsurf 曲面图 surfc, ezsurfc surfl 说明 立体网状图 网状图加上等高线 网状图加上“围裙”(或“舞 台”) 三维曲面图 曲面图加上等高线 曲面图加上光源
set(h, 'hori', 'center', 'vertical', 'bottom', 'color', 'r'); % 改变位置及颜色 end end
MATLAB 程序设计入门篇:三维立体绘图
NCU CM 暑期培训
4-1 基本立体绘图指令
MATLAB 程序设计入门篇:三维立体绘图
NCU MCM 暑期培训
y = 31− x) e (
2 −x2−( y+1)2
x 3 5 −x2−y2 1 −(x+1)2−y2 −10( − x − y )e − e 5 3
