基于MATLAB三维曲面图
matlab的空间三维作图与符号作图
![matlab的空间三维作图与符号作图](https://img.taocdn.com/s3/m/01928668ba1aa8114431d9a9.png)
三、加密:取更二多维的点作图举例
>> x=[0:pi/20:2*pi]; >> y=sin(x); >> plot(x,y,'.')
11
三维曲线作图过程
x t
例:绘制三维螺线:
y
sin( t )
z cos(t)
( 0 < t < 20 )
先画点,后连线
1) 计算空间离散点的坐标 (x,y,z) 2) 将这些点按顺序连接即可
调用 Matlab 的绘图命令作出曲面图形
怎样得到网格矩阵 X 和 Y ?
—— 利用 Matlab 的网格生成函数 meshgrid
5
网格生成函数
网格生成函数 [X,Y] = meshgrid(x,y) x,y 是分别对 x 变化区域和 y 变化区域进行分割后
得到的向量 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)
+eps?
1) x 与 y 可以取不同的步长 2) 注意这里采用的数组运算
最后一个命令能否改为 mesh(Z)?
gray cool
线性灰色系 hot 青和洋红色系 pink
黑红黄白色系 柔和色系
26
Matlab 符号作图
27
二维曲线 ezplot
二维曲线绘图命名: ezplot ezplot(f(x),[a,b])
利用Matlab的三维绘图功能绘制趋势面图形
![利用Matlab的三维绘图功能绘制趋势面图形](https://img.taocdn.com/s3/m/072a9d6a33687e21af45a996.png)
§6.利用Matlab绘制趋势面图形1. Matlab的三维绘图函数及其功能Matlab的三维绘图函数及其功能分别见表2、表3、表4和表5中。
表2三维绘图函数Contour 二维等值线图,即从上向下看Contour3等值线图Contour3 等值线图Fill3 填充的多边形Mesh 网格图Meshc 具有基本等值线图的网格图Meshz 有零平面的网格图Pcolor 二维伪彩色绘图,即从上向下看surf图Plot3 直线图Quiver 二维带方向箭头的速度图Surf 曲面图Surfc 具有基本等值线图的曲面图Surfl 带亮度的曲面图Waterfall 无交叉线的网格图表3三维绘图工具Axis 修正坐标轴属性Clf 清除图形窗口Clabel 放置等值线标签Close 关闭图形窗口Figure 创建或选择图形窗口Getframe 捕捉动画桢Grid 放置网格Griddata 对画图用的数据进行内插Hidden 隐蔽网格图线条Hold 保留当前图形Meshgrid 产生三维绘图数据Movie 放动画Moviein 创建桢矩阵,存储动画Shading 在曲面图和伪彩色图中用分块、平滑和插值加阴影Subplot 在图形窗口内画子图Text 在指定的位置放文本Title放置标题 View改变图形的视角 Xlabel放置x 轴标记 Ylabel放置y 轴标记 Zlabel放置z 轴标记表4函数viewView(az,el) 设置视图的方位角az 和仰角elView([az,el])View([x,y,z]) 在笛卡儿坐标系中沿向量[x,y,z]正视原点设置视图,例如view([0 01])=view(0,90)View(2) 设置缺省的二维视图,az=0,el=90View(3) 设置缺省的三维视图,az=-37.5,el=30[az,el]=View 返回当前的方位角az 和仰角elView(T) 用一个4×4的转置矩阵T 来设置视图 T=View 返回当前的4×4转置矩阵表5掌握MATLAB 高级图形功能Mmcont2(X,Y,Z,C) 具有颜色映像的二维等值线图Mmcont3(X,Y,Z,C) 具有颜色映像的三维等值线图Mmspin3d(N) 旋转当前图形的三维方位角来制作动画Mmview3d用滑标来调整视角2.实例第3章第6节,分别建立了某流域1月份降水量的二次多项式和三次多项式趋势面。
实验Matlab三维作图地绘制
![实验Matlab三维作图地绘制](https://img.taocdn.com/s3/m/396dde86524de518974b7d19.png)
实验9 三维绘图一、实验目的学会MATLAB软件中三维绘图的方法。
二、实验内容与要求1.三维曲线图格式一:plot3(X,Y,Z,S).说明:当X,Y,Z均为同维向量时,则plot3描出点X(i),Y(i),Z(i)依次相连的空间曲线.若X,Y均为同维矩阵,X,Y,Z每一组相应列向量为坐标画出一条曲线,S为‘color﹣linestyle﹣marker’控制字符表1.6~表1.10.【例1.79】绘制螺旋线.>>t=0:pi/60:10*pi;>>x=sin(t);>>y=cos(t);>>plot3(x,y,t,’*-b’)>>grid on图形的结果如图1.16所示.格式二:comet3(x,y,z).说明:显示一个彗星通过数据x,y,z确定的三维曲线.【例1.80】>>t=-20*pi:pi/50:20*pi;>>comet3(sin(t),cos(t),t)可见到彗星头(一个小圆圈)沿着数据指定的轨道前进的动画图象,彗星轨道为整个函数所画的螺旋线.格式三:fill3(X,Y,Z,C) ℅填充由参数X,Y,Z确定的多边形,参数C指定颜色.图1.16 例1.79图形结果图1.17 例1.81图形结果【例1.81】>>X=[2,1,2;9,7,1;6,7,0];>>Y=[1,7,0;4,7,9;0,4,3];>>Z=[1,8,6;7,9,6;1,6,1];>>C=[1,0,0;0,1,0;0,0,1]>>fill3(X,Y,Z,C)>>grid on图形的结果如图1.17所示.问题 1.30:图 1.17中每个三角形按什么规律画出的?(用X,Y,Z的对应列元素值为坐标画三角形)每个三角形内填充的颜色又有何规律?(用C 第i列元素值对应的颜色,从第i个三角形对应顶点向中心过渡)若C=[1,5,10;1,5,10;1,5,10],结果如何?2.三维网格图格式:mesh(X,Y,Z,C) ℅画出颜色由C指定的三维网格图.meshc(X,Y,Z,C) ℅画出带有等高线的三维网格图.meshz(X,Y,Z,C) ℅画出带有底座的三维网格图.说明:若X与Y均为向量,n=length(X),m=length(Y), Z必须满足[m,n]=size(Z),则空间中的点(X(j),Y(i),Z(i,j))为所画曲面网线的交点,X 对应于Z的列,Y对应于Z的行;若X,Y,Z均为同维矩阵,则空间中的点(X(i,j),Y(i,j),Z(i,j))为所画曲面的网线的交点;矩阵C指定网线的颜色,MATLAB对矩阵C中的数据进行线性处理,以便从当前色图中获得有用的颜色,若C缺省,网线颜色和曲面的高度Z相匹配.在三维作图常用到命令meshgrid,其功能是生成二元函数z=f(x,y)中x-y平面上的矩形定义域中数据点矩阵X和Y.格式:[X,Y]= meshgrid(x,y).说明:输入向量x为x-y平面上x轴的值,向量y为x-y平面上y轴的值.输出矩阵X为x-y平面上数据点的横坐标值,输出矩阵Y为x-y平面上数据点的纵坐标值.【例1.82】>> x=1:4;>> y=1:5;>> [x,y]=meshgrid(x,y)x =1 2 3 41 2 3 41 2 3 41 2 3 41 2 3 4y =1 1 1 12 2 2 23 3 3 34 4 4 45 5 5 5图1.18所示x-y 平面上的矩形定义域中20个数据点(星号点)的坐标就是有X ,Y 决定的。
MATLAB学习——三维曲面图像绘制
![MATLAB学习——三维曲面图像绘制](https://img.taocdn.com/s3/m/cd613f1ff08583d049649b6648d7c1c708a10b34.png)
MATLAB学习——三维曲⾯图像绘制最近⾼数在学曲⾯,机导在学Matlab, 于是研究了⼀下怎么⽤Matlab画三维曲⾯,来分享⼀下~在Matlab中绘制三维图像可以分为三个步骤:1)⽣成平⾯⽹格数据。
在Matlab中的图形绘制本质上就是描点作图法。
在开始绘图之前,需要先在XY平⾯上⽣成⼀张平⾯⽹格数据,把平⾯分成⼀个⼀个⼩格⼦,作为描点的基础。
这⼀步⽤到的是meshgrid()函数。
meshgrid()接受两个参数x和y。
x和y是两个矩阵,x ij代表⽹格上第i⾏第j列位置的横坐标,y ij代表⽹格上第i⾏第j列位置的纵坐标。
根据x 和y便能确定⼀张平⾯数据⽹格了。
若只传⼀个参数,则默认x=y。
⽰例如下:t1=-10:0.5:10;t2=-5:0.5:-5;[X,Y] = meshgrid(t1,t2);2)设置函数⽅程。
可以是⼀般⽅程,也可以是参数⽅程。
3)调⽤绘图函数把图像画出来。
如果是⼀般⽅程的形式,可以⽤mesh()函数,surf()函数或plot3()函数。
函数接受三个参数,分别表⽰横,纵和竖坐标。
mesh()所绘制图像,线条有颜⾊,线条之间⽆填充;surf()函数线条为⿊⾊,线条之间有填充;plot()函数实际由⼀条⼀条三维曲线组合⽽成,不形成⽹格。
如果是参数⽅程形式,在函数名前⾯加个f就好啦,即调⽤fmesh(), fsurf()和fplot3()。
下⾯是⼀个⼀般⽅程形式的例⼦:t=-20:0.8:20;[X,Y]=meshgrid(t);Z=X.^2+Y.^2-Z.^2;subplot(1,3,1); %⼦图,可以让多张图同时显⽰mesh(X,Y,Z);subplot(1,3,2);surf(X,Y,Z);subplot(1,3,3);plot3(X,Y,Z);grid on; %表⽰显⽰⽹格,可以让图像看得更清楚结果如下:下⾯是⼀个参数⽅程的例⼦:funx=@(u,v)u.*sin(v);funy=@(u,v)-u.*cos(v);funz=@(u,v) v;fmesh(funx,funy,funz);结果如下:此外,Matlab还提供了专门绘制标准三维曲⾯的函数,⽐如sphere()和cylinder()。
实验Matlab三维作图的绘制
![实验Matlab三维作图的绘制](https://img.taocdn.com/s3/m/53eae47f1711cc7930b71606.png)
实验9 三维绘图一、实验目的学会MATLAB软件中三维绘图的方法。
二、实验内容与要求1.三维曲线图格式一:plot3(X,Y,Z,S).说明:当X,Y,Z均为同维向量时,则plot3描出点X(i),Y(i),Z(i)依次相连的空间曲线.若X,Y均为同维矩阵,X,Y,Z每一组相应列向量为坐标画出一条曲线,S为‘color﹣linestyle﹣marker’控制字符表1.6~表1.10.【例1.79】绘制螺旋线.>>t=0:pi/60:10*pi;>>x=sin(t);>>y=cos(t);>>plot3(x,y,t,’*-b’)>>grid on图形的结果如图1.16所示.格式二:comet3(x,y,z).说明:显示一个彗星通过数据x,y,z确定的三维曲线.【例1.80】>>t=-20*pi:pi/50:20*pi;>>comet3(sin(t),cos(t),t)可见到彗星头(一个小圆圈)沿着数据指定的轨道前进的动画图象,彗星轨道为整个函数所画的螺旋线.格式三:fill3(X,Y,Z,C) ℅填充由参数X,Y,Z确定的多边形,参数C指定颜色.图1.16 例1.79图形结果图1.17 例1.81图形结果【例1.81】>>X=[2,1,2;9,7,1;6,7,0];>>Y=[1,7,0;4,7,9;0,4,3];>>Z=[1,8,6;7,9,6;1,6,1];>>C=[1,0,0;0,1,0;0,0,1]>>fill3(X,Y,Z,C)>>grid on图形的结果如图1.17所示.问题1.30:图1.17中每个三角形按什么规律画出的?(用X,Y,Z的对应列元素值为坐标画三角形)每个三角形内填充的颜色又有何规律?(用C 第i列元素值对应的颜色,从第i个三角形对应顶点向中心过渡)若C=[1,5,10;1,5,10;1,5,10],结果如何?2.三维网格图格式:mesh(X,Y,Z,C) ℅画出颜色由C指定的三维网格图.meshc(X,Y,Z,C) ℅画出带有等高线的三维网格图.meshz(X,Y,Z,C) ℅画出带有底座的三维网格图.说明:若X与Y均为向量,n=length(X),m=length(Y), Z必须满足[m,n]=size(Z),则空间中的点(X(j),Y(i),Z(i,j))为所画曲面网线的交点,X 对应于Z的列,Y对应于Z的行;若X,Y,Z均为同维矩阵,则空间中的点(X(i,j),Y(i,j),Z(i,j))为所画曲面的网线的交点;矩阵C指定网线的颜色,MATLAB对矩阵C中的数据进行线性处理,以便从当前色图中获得有用的颜色,若C缺省,网线颜色和曲面的高度Z相匹配.在三维作图常用到命令meshgrid,其功能是生成二元函数z=f(x,y)中x-y平面上的矩形定义域中数据点矩阵X和Y.格式:[X,Y]= meshgrid(x,y).说明:输入向量x为x-y平面上x轴的值,向量y为x-y平面上y轴的值.输出矩阵X为x-y平面上数据点的横坐标值,输出矩阵Y为x-y平面上数据点的纵坐标值.【例1.82】>> x=1:4;>> y=1:5;>> [x,y]=meshgrid(x,y)x =1 2 3 41 2 3 41 2 3 41 2 3 41 2 3 4y =1 1 1 12 2 2 23 3 3 34 4 4 45 5 5 5图1.18所示x-y 平面上的矩形定义域中20个数据点(星号点)的坐标就是有X ,Y 决定的。
如何在Matlab中进行二维和三维绘图
![如何在Matlab中进行二维和三维绘图](https://img.taocdn.com/s3/m/93ee365c1fd9ad51f01dc281e53a580217fc5043.png)
如何在Matlab中进行二维和三维绘图在科学研究和工程领域,数据可视化是一项十分重要的任务,而Matlab作为一种功能强大的数值计算和数据分析软件,自然也提供了丰富的绘图功能。
本文将介绍如何在Matlab中进行二维和三维绘图,并探讨一些常见的绘图技巧和应用。
一、二维绘图Matlab中的二维绘图是最常见和基础的绘图任务之一。
在绘制二维图形时,我们通常会用到plot函数。
这个函数可以接受单个向量作为输入,将这个向量的值作为y轴上的数据点,自动生成与该向量长度相同的x轴坐标。
例如,我们可以用以下代码绘制一个简单的二维折线图:```x = 0:0.1:2*pi;y = sin(x);plot(x, y);```上述代码中,x参量取从0到2π的均匀间隔的值,而y则是根据x计算得到的sin函数值。
plot函数会自动根据输入绘制折线图,并添加相应的轴标签和图例。
在实际应用中,我们经常需要绘制多条曲线在同一个坐标系中进行对比分析。
可以通过在plot函数中传入多个x和y向量实现这一功能。
例如,我们可以通过以下代码绘制一个简单的双曲线图:```x = 0:0.1:2*pi;y1 = sin(x);y2 = cos(x);plot(x, y1, x, y2);```这样,就会在同一个坐标系中同时绘制sin曲线和cos曲线。
除了折线图,Matlab还支持其他常见的二维绘图类型,如散点图、柱状图和面积图等。
这些绘图类型可以通过不同的函数实现,例如scatter、bar和area等。
这里不再一一赘述,读者可以通过Matlab的帮助文档或官方网站了解更多的用法和示例。
二、三维绘图除了二维绘图,Matlab也提供了丰富的三维绘图功能,用于可视化更为复杂的数据和模型。
在绘制三维图形时,我们通常会用到surf函数。
这个函数可以接受两个二维矩阵作为输入,将这两个矩阵的值分别作为x、y轴上的坐标,而将第三个二维矩阵的值作为z轴上的数据点。
matlab三维绘图
![matlab三维绘图](https://img.taocdn.com/s3/m/29ad6f13e87101f69e3195f8.png)
三维线图函数
● 例 题 : 绘 制 三 维 的 螺 旋 曲 线 图 , 其 中 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绘制三维图](https://img.taocdn.com/s3/m/c18bdce4f80f76c66137ee06eff9aef8941e4824.png)
二.三维绘图一.绘制三维曲线的基本函数最基本的三维图形函数为plot3,它将二维绘图函数plot的有关功能扩展到三维空间,可以用来绘制三维曲线。
其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot的选项一样。
当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。
例513 绘制空间曲线该曲线对应的参数方程为t=0:pi/50:2*pi;x=8*cos(t);y=4*sqrt(2)*sin(t);z=-4*sqrt(2)*sin(t);plot3(x,y,z,'p');title('Line in 3-D Space');text(0,0,0,'origin');xlabel('X');ylabel('Y');zlabel('Z');grid;二.三维曲面1.平面网格坐标矩阵的生成当绘制z=f(x,y)所代表的三维曲面图时,先要在xy平面选定一矩形区域,假定矩形区域为D=[a,b]×[c,d],然后将[a,b]在x方向分成m份,将[c,d]在y方向分成n份,由各划分点做平行轴的直线,把区域D分成m×n个小矩形。
生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数绘图。
产生平面区域内的网格坐标矩阵有两种方法:利用矩阵运算生成。
x=a:dx:b;y=(c:dy:d)’;X=ones(size(y))*x;Y=y*ones(size(x));经过上述语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素个数,矩阵Y的每一列都是向量y,列数等于向量x的元素个数。
利用meshgrid函数生成;x=a:dx:b;y=c:dy:d;[X,Y]=meshgrid(x,y);语句执行后,所得到的网格坐标矩阵和上法,相同,当x=y时,可以写成meshgrid(x)2.绘制三维曲面的函数Matlab提供了mesh函数和surf函数来绘制三维曲面图。
Matlab绘制三维曲线
![Matlab绘制三维曲线](https://img.taocdn.com/s3/m/91af54a7b0717fd5360cdc5d.png)
Matlab绘制三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgr id(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+s in(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
案例28使用matlab绘制专业图形——绘制曲线和曲面图
![案例28使用matlab绘制专业图形——绘制曲线和曲面图](https://img.taocdn.com/s3/m/ffb4a3b40129bd64783e0912a216147917117e2c.png)
案例28使用MATLAB 绘制专业图形绘制曲线和曲面图案例主要信息提示 ● 案例内容:使用MATLAB 进行专业作图。
● 关键词:MATLAB ,作图,二维作图,三维作图 ● 建议课时:2课时● 适合专业:理工科各专业●光盘中的数字资源:二维曲线绘图M 文件graph_line.m三维曲面绘图M 文件graph_surface.m一、 实验内容实验内容1.绘制曲线图在1个绘图窗口的4个不同子窗口中分别绘制以下曲线: ①在子窗口1中绘制两条二维曲线,分别为:0.510.2cos(4)x y e x π-=和0.522cos()x y e x π-=并显示网格线。
②在子窗口2中绘制两条二维曲线,分别为:0.512x y e -=和2cos(2)y x π=并添加标题、x/y 轴名称、图形说明和图例。
③在子窗口3中绘制一条极坐标曲线,如下:sin()cos()r t t =④在子窗口4中绘制一条极三维螺旋线。
全部4个子窗口绘制效果如图28-1所示。
图28-1曲线绘制效果图实验内容2.绘制曲面图在1个绘图窗口的4个不同子窗口中分别绘制以下曲面:①在子窗口1和子窗口2中以不同着色方式绘制两个球面。
②在子窗口3和子窗口4中以不同视角绘制两个直径相等的圆管相交的图形。
全部4个子窗口绘制效果如图28-2所示。
图28-1曲面绘制效果图二、预备知识2.1 MATLAB绘图功能简介MA TLAB软件提供了丰富的图形表达功能,包括常用的二维图形和三维图形。
其中,各种二维图形近30种,三维图形20多种。
应用MA TLAB除了能作一般的曲线、散点图、条形图等,还能绘制流线图、三维矢量图等工程实用图形。
下面我们介绍一些基本的二维和三维绘图函数。
2.2 二维图形的绘制二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
2.2.1绘制二维曲线的plot函数在MATLAB中,plot函数是最简单、最基本而且应用最为广泛的线性绘图函数,利用它可以在二维平面上生成线段、曲线和参数方程曲线等的函数图形。
[转载]用MATLAB画曲面图
![[转载]用MATLAB画曲面图](https://img.taocdn.com/s3/m/91f99d0015791711cc7931b765ce050877327550.png)
[转载]⽤MATLAB画曲⾯图原⽂地址:⽤MATLAB画曲⾯图作者:惠州学院数学建模曲⾯图,除了各线条之间的空档(称作补⽚)⽤颜⾊填充以外,和⽹格图看起来是⼀样的。
这种图⼀般使⽤函数 surf来绘制。
⾃然,函数surf使⽤和函数mesh相同的调⽤语法。
⽐如:[X,Y,Z]=peaks(30);surf(X,Y,Z)grid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ )title( ‘ SURF of PEAKS ‘ )MATLAB 还提供了平滑加颜⾊和插值加颜⾊功能。
这可以通过调⽤函数shading 来实现[X,Y,Z]=peaks(30);surf(X,Y,Z) % same plot as abovegrid,xlabel( ‘ x-axis ‘ ),ylabel( ‘ y-axis ‘ ),zlabel( ‘ z-axis ‘ )title( ‘ SURF of PEAKS ‘ )shading flat如上所⽰平滑加⾊彩的例⼦中,每⼀补⽚仍保存着单⼀的颜⾊,但各块连接处的⿊线已去掉。
shading interp输出见下图如上所⽰内插加⾊彩的例⼦中,同样去掉了线条,但各补⽚以插值加颜⾊,即各补⽚的颜⾊根据赋予顶点的⾊值,对其区间进⾏了插值计算。
很明显,插值⾊彩需要⽐分块和平滑更多的计算量。
在⼀些计算机系统中,插值⾊彩会产⽣⾮常长的打印延时或打印错误。
这问题不在于PostScript ⽂件太⼤,⽽是由于在打印机上产⽣沿图形曲⾯连续变化的阴影所需的巨⼤计算量。
通常对这个问题最简单的解决⽅法是使⽤平滑加⾊彩法来打印。
⾊彩对 surf作图的视觉效果有着巨⼤的影响。
对⽹格图也是如此,尽管由于只有线条有颜⾊,对视觉效果的影响相对要⼩⼀些。
因为曲⾯图不能作成透明,但在⼀些情况下可以很⽅便地移⾛⼀部分表⾯以便看到表⾯以下部分,在 MATLAB 中,这是通过在所期望的洞孔的所在位置,将数据置为特定的NaN 来实现。
matlab-三维曲面的自动绘制
![matlab-三维曲面的自动绘制](https://img.taocdn.com/s3/m/7524c91b4431b90d6c85c74c.png)
一、设计目的Matlab 有两类绘图命令,一类是直接对图形句柄进行操作的低层绘图命令,另一类是在低层命令基础上建立起来的高层绘图命令。
高层绘图命令简单明了、方便高效。
利用高层绘图函数,用户不需过多考虑绘图细节,只需给出一些基本参数就能得到所需图形。
在三维曲面的绘制中,Matlab提供了meshgrid 函数、mesh waterfall、函数、surf函数、Surfl函数和patch函数。
他们的使用方法基本相同。
在Matlab中,为了表现图形的显示效果,提供了一些控制函数,有视角的控制、光度的控制、色彩的控制和透明度的控制等。
在三维图形的最佳视觉效果中,Matlab提供了两种方法:一是改变观看的角度(视角),二是旋转图形。
视角由函数view控制,旋转有两个指令:rotate和rotate3d。
光照的控制主要有camlight指令、lighting 指令、material函数、light函数、lightangle函数。
色彩控制包括颜色的向量表示、色图、三维表面图形的着色以及浓淡处理。
图形的透明值用0和1之间的值表示,常用alpha来说明。
二、设计思路绘制所代表的三维曲面图,先要在平面选定一矩形区域,假定矩形区域,然后将在方向分成份,将在方向分成份,由各划分点分别作平行于两坐标轴的直线,将区域D分成个小矩形,生成代表每一个小矩形顶点坐标的平面网格坐标矩阵,最后利用有关函数求对应网格坐标的Z矩阵。
在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b;y=c:d2:d;[X,Y]= meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
当x=y时,meshgrid 函数可写成meshgrid(x)。
当函数不能简单表示出来时,便只能用for循环或while循环来计算z的元素。
MATLAB三维图形绘制
![MATLAB三维图形绘制](https://img.taocdn.com/s3/m/891e0bd32af90242a995e50a.png)
%绘制极坐标图
说明:theta为相角,radius为离原点的距离。
• 【】求传递函数为
G(s) s(0的.51s对1)数幅频特性曲线,
横坐标为w,按对数坐标。
Aw=1./(w.*sqrt((0.5*w).^2+1)); Lw=20*log10(Aw); semilogx(w,Lw) title('对数幅频特性曲线')
• colormap 色图函数—— 色图设定函数
• colormap 色图函数(m)——产生m×3的色图矩阵 缺省64×3。
颜色
Black(黑) White(白) Red(红) Green(绿) Blue(蓝) Yellow(黄) Magenta(品红) Cyan(青) Gray(灰) Dark red(暗红) Copper(铜色) Aquamarine(碧绿)
【上例续】使用消息框显示当阻尼系数大于1时的警告信 息,如下图。
>>msgbox('阻尼系数输入范围出错','警告','warn')
〔2〕其它对话框
【例续】使用警告对话框显示当阻尼系数大于1时的警告 信息。 >>warndlg('阻尼系数输入范围出错','警告')
【例续】使用出错提示框显示当阻尼系数小于0时出错 信息。 >>errordlg('阻尼系数输入出错','出错')
说明:az表示方位角(azimuth),el表示俯仰角(elevation)
°,el=30°
五、色彩的控制
1.色图(colormap)
(1) RGB三元组
RGB三元数组每行表示一种色彩,数组元素R、G、B在 0~1之间取值,分别表示红、绿、蓝基色的相对亮度,如 下表所示。
MATLAB绘三维图
![MATLAB绘三维图](https://img.taocdn.com/s3/m/10a509d502020740bf1e9b5e.png)
第六讲 MATLAB可视化(二)绘三维图【目录】一、三维图形绘制步骤 (1)二、三维绘图基本操作 (2)1、三维线图 (2)2、三维网线图 (3)3、三维曲面图 (4)三、透视、镂空和裁切 (5)1、图形的透视 (5)2、图形的镂空 (6)3、图形的裁切 (7)四、三维图形的精细控制 (8)1、视点与旋动 (8)2、色彩控制 (9)3、浓淡处理 (11)五、照明和材质处理 (12)六、简洁绘图指令 (13)【正文】一、三维图形绘制步骤步骤典型指令1三维曲线数据:先取一个参变量采样向量然后计算各坐标数据向量t=pi*(0:100)/100;x=f1(t);y=f2(t);z=f3(t);三维曲面数据:产生自变量采样向量;由自变量向量产生格点矩阵;计算格点矩阵相对应的函数值矩阵x=x1:dx:x2;y=y1:dy:y2;[X,Y]=meshgrid(x,y);Z=f(x,y);2 选定图形窗及子窗位置:同二维3调用三维曲线绘图指令:线型、色彩、数据点形plot3(x,y,z,'b-') 调用三维曲面绘图指令Mesh(X,Y,Z);4 设置轴的范围与刻度、坐标分隔线同二维5 图形注释:图名、坐标名、图例、文字同二维6 着色、明暗、灯光、材质处理colormap,shading,light,material7 视点、三度(横、纵、高)比view,aspect二、三维绘图基本操作1、三维线图用来画三维曲线,三维曲线与一组(x,y,z)坐标相对应的点连接而成。
绘图格式为:plot3(X,Y,Z,'s')plot3(X1,Y1,Z1,'s1',X2,Y2,Z2,'s2',...)(1) X、Y、Z是同维向量时,则绘制以X、Y、Z元素为x、y、z 坐标的三维曲线;(2) X、Y、Z是同维矩阵时,则以X、Y、Z对应列元素为x、y、z坐标绘制多条曲线,曲线条数等于矩阵的列数;(3) (X1,Y1,Z1,'s1')与(X2,Y2,Z2,'s2')的结构与作用和(X,Y, Z,'s')相同,表示同一指令绘两组以上曲线;(4) s、s1、s2的意义与二维相同。
MATLAB教程三维图形
![MATLAB教程三维图形](https://img.taocdn.com/s3/m/86d568df690203d8ce2f0066f5335a8102d266d8.png)
x=sin(t); y=cos(t); z=t;
plot3(x,y,z) ,
axis square; grid on
Kjqx.m
x1=[0.5, 0.5, 0, 0.5]; y1=[0.5, 0.5, 0, 0.5]; z1=[ 1, 0, 0, 1 ]; x2=[0.5, 0.5, 1, 0.5]; y2=[0.5, 0.5, 0, 0.5]; z2=[ 1, 0, 0, 1 ]; x3=[0,1]; y3=[0,0]; z3=[0,0]; plot3(x1,y1,z1,x2,y2,z2,x3,y3,z3)
三.网线和表面图
1、三维绘图数据的产生
在matlab中,曲面是用x y平面上各个格点的 Z坐标 来定义的。画曲面前先要生成三维绘图数据。
(1)利用meshgrid函数生成平面网格坐标矩阵。再 利用函数关系求Z.
x=a:△x:b; y=c:△y:d; [X,Y]=meshgrid(x,y); Z=f (x,y) (2)利用双峰函数peaks [x,y,z]=peaks(n) 分别创建x,y,z三个均为n×n阶的方阵 peaks(n)直接使用peaks函数所创建的矩阵绘制表面图
色图矩阵是m×3 的数值矩阵,它的每一行是RGB三元组。 [0 0 0] 黑色 [1 0 0] 红色 [0 1 0]蓝色 [0 0 1]绿色
色图函数 pink 粉色 copper 铜色 hot 暖色 cool 冷色 flag 四色旗 prism光谱色
setu.m spring summer autumn winter
ys.m ys02.m
1.5.4 动画
1、彗星轨迹图
Comet(x,y,p)
彗长为p*length(y)的二维彗星轨迹,p的默认值为0y)的三维彗星轨迹,p的默认值为0.1 ddqxn.m huixing.m
Matlab绘制三维曲线
![Matlab绘制三维曲线](https://img.taocdn.com/s3/m/22308bf1a417866fb84a8ea7.png)
Matlab绘制三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。
当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。
例绘制三维曲线。
程序如下:t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Line in 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');三维曲面1.产生三维数据在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。
其格式为:x=a:d1:b; y=c:d2:d;[X,Y]=meshgrid(x,y);语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。
2.绘制三维曲面的函数surf函数和mesh函数的调用格式为:mesh(x,y,z,c):画网格曲面,将数据点在空间中描出,并连成网格。
surf(x,y,z,c):画完整曲面,将数据点所表示曲面画出。
一般情况下,x,y,z是维数相同的矩阵。
x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
例绘制三维曲面图z=sin(x+sin(y))-x/10。
程序如下:[x,y]=meshgrid(0:0.25:4*pi); %在[0,4pi]×[0,4pi]区域生成网格坐标z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。
用matlab作三维曲线曲面图形2011
![用matlab作三维曲线曲面图形2011](https://img.taocdn.com/s3/m/e70267ea6294dd88d0d26bd6.png)
左侧为一段作空间曲面图的程序。 绘制的曲面方程为:
例 2:作出马鞍面
的图形
clf x=-4:0.2: 4; y=-3:0.2:3; [xx,yy]=meshgrid(x,y); zz=xx.^2/4-yy.^2/9; zz2=2*ones(size(zz)); mesh(xx,yy,zz) hold on surf(xx,yy,zz2)
z =
mesh(c,d,zz)指令的效果 指令的效果
核心指令 meshgrid 的功能演示
x=-5:0.2:5; y=-5:0.2:5; %前两句定义作图区域 前两句定义作图区域 [c,d]=meshgrid(x,y); %在作图区域内生成节点坐标矩阵 在作图区域内生成节点坐标矩阵 zz=cos(c).*cos(d).*exp(sqrt(c.^2+d.^2)/4); %由每一个节点的横坐标 c(I,j)和纵坐标 d(I,j)计算对应的竖坐标 z(I,j) 由每一个节点的横坐标 和纵坐标 计算对应的竖坐标 surf(c,d,zz) %调用绘图函数 surf 调用绘图函数
matlab空间曲面绘图
![matlab空间曲面绘图](https://img.taocdn.com/s3/m/160ab3c12cc58bd63186bd6d.png)
空间曲面绘图(1) 直接绘图-ezmesh 和ezsurfezmesh 绘制三维网格图,ezsurf 绘制三维表面图。
例1 绘制抛物柱面2x 2z −=的图形。
指令:ezmesh('2-x^2',[-1,1,-1,1])图7.43指令:ezsurf('2-x^2',[-1,1,-1,1])图7.44例2 绘制)xy sin(z =的图形。
指令:ezmesh('sin(x*y)',[0,4,0,4])图7.45例3 绘制马鞍面2y 2x z 22−=的图形。
指令:ezmesh('x^2/2-y^2/2')图7.46例4 绘制椭圆抛物面22x y 2z +=和抛物柱面2x 2z −=所围的图形。
ezmesh('2-x^2',[-1,1,-1,1]hold on % 在同一图形窗口中继续绘图 ezmesh('2*y^2+x^2',[-1,1,-1,1]) axis([-1,1,-1,1,0,4])图7.47(2) 自定义网格绘图-meshgrid 和mesh/surf 例5 绘制23y x z −=的图形。
[x,y]=meshgrid(-2:0.2:2,-3:0.1:3) % 自定义网格数据 z=x.^3-y.^2 mesh(x,y,z)图7.48surf(x,y,z)图7.49contour3(x,y,z,50) %绘制50条三维等高线图7.50Contour(x,y,z,40) %绘制40条二维等高线图7.51例6 在同一坐标系中绘制23y x z −=和0z =的图形。
[x,y]=meshgrid(-2:0.2:2,-3:0.1:3) z=x.^3-y.^2 mesh(x,y,z)zz=zeros(size(z)) hold onmesh(x,y,zz)图7.52(3) 参数方程绘图例7 绘制球面⎪⎩⎪⎨⎧===u sin z )u cos()t sin(y )u cos()t cos(x 的图形。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xlabel('X 軸 = column index'); % X 軸的說明文字
ylabel('Y 軸 = row index');
% Y 軸的說明文字
for i=1:size(z,1)
for j=1:size(z,2)
h=text(j, i, z(i,j), num2str(z(i, j)));
% 標示曲面高度
範例4-3 :plotxyz011.m
x = 3:6; y = 5:9; [xx, yy] = meshgrid(x, y); zz = xx.*yy; subplot(2,2,1); mesh(xx); title('xx'); axis tight subplot(2,2,2); mesh(yy); title('yy'); axis tight subplot(2,2,3); mesh(xx, yy, zz); title('zz 對 xx 及 yy 作圖'); axis tight
ezmesh, ezsurf:
如果我們只是要很快地檢視一個具有二個輸入 的函數的圖形,就可以使用 ezmesh 或是 ezsurf 等來快速地畫出函數的曲面圖形
範例4-13:plotxyz091.m
subplot(2,2,1); subplot(2,2,2); subplot(2,2,3); subplot(2,2,4);
範例4-1 :plotxyz001.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-2 :plotxyz002.m
若要將與曲面對應的 x 座標和 y 座標都一併畫出 來,還是可以使用 mesh 指令
z = [0 2 1; 3 2 4; 4 4 4; 7 6 8];
mesh(z);
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
peaks的圖形
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
meshz:
meshz 指令有將曲面加上「圍裙」或「舞台」 的效果
範例4-6:plotxyz03.m
[x, y, z] = peaks; meshz(x,y,z); axis tight;
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-12:plotxyz09.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
整理:基本三維立體繪圖指令的列表
類別
指令
說明
mesh, ezmesh
立體網狀圖
網狀圖 meshc, ezmeshc 網狀圖加上等高線
4-1 基本立體繪圖指令
範例4-10:plotxyz07.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
plot3:
如果輸入引數是三個大小相同的矩陣 x、y、z, 那麼 plot3 會依序畫出每個行向量在三度空間 所對應的曲線
範例4-11:plotxyz08.m
[x, y] = meshgrid(-2:0.1:2); z = y.*exp(-x.^2-y.^2); plot3(x, y, z);
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-7:plotxyz04.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
meshc:
meshc 可同時畫出網狀圖與「等高線」 (Contours)
範例4-8:plotxyz05.m
[x, y, z] = peaks; meshc(x, y, z); axis tight;
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-12:plotxyz09.m
x = 6*rand(100,1)-3; % x 為介於 [-3, 3] 的 100 點亂數
y = 6*rand(100,1)-3; % y 為介於 [-3, 3] 的 100 點亂數
z = peaks(x, y); % z 為 peaks 指令產生的 100 點輸出
% 在 x 軸 [-2,2] 之間取 25 點 % 在 y 軸 [-2,2] 之間取 25 點 % xx 和 yy 都是 25×25 的矩陣 % zz 也是 25×2 的矩陣
% 畫出立體曲面圖
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-5 :plotxyz01.m
MATLAB 程式設計入門篇:三維立體繪圖
z = [0 2 1; 3 2 4; 4 4 4; 7 6 8];
mesh(z);
xlabel('X 軸 = column index'); % X 軸的說明文字
ylabel('Y 軸 = row index');
% Y 軸的說明文字
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
x = linspace(-2, 2, 25); y = linspace(-2, 2, 25); [xx, yy] = meshgrid(x, y); zz = xx.*exp(-xx.^2-yy.^2); mesh(xx, yy, zz);
% 在 x 軸 [-2,2] 之間取 25 點 % 在 y 軸 [-2,2] 之間取 25 點 % xx 和 yy 都是 25×25 的矩陣 % 計算函數值,zz 也是 25×25 的矩陣 % 畫出立體網狀圖
4-1 基本立體繪圖指令
peaks:
為了方便測試立體繪圖,MATLAB 提供了一個 peaks 函數,可產生一個凹凸有致的曲面,包含了三個局部 極大點(Local Maxima)及三個局部極小點(Local Minima)
其方程式為:
y 3(1 x) e2 x2( y1)2 10( x x3 y5 )ex2y2 1 e(x1)2y2
ezmesh('sin(x)/x*sin(y)/y'); ezsurf('sin(x*y)/(x*y)'); ezmeshc('sin(x)/x*sin(y)/y'); ezsurfc('sin(x*y)/(x*y)');
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-13:plotxyz091.m
% xx 和 yy 都是矩陣 % 計算函數值 zz,也是矩陣
colormap(zeros(1,3));
% 以黑色呈現
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-3 :plotxyz011.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-4 :plotxyz01.m 使用 linspace 來產生較密集的資料,以便畫出由 函數 形成的立體網狀圖
meshz
網狀圖加上“圍裙”(或“舞 臺”)
surf, ezsurf
立體曲面圖
曲面圖 surfc, ezsurfc
曲面圖加上等高線
surfl
曲面圖加上光源
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
整理:基本三維立體繪圖指令的列表
類別
指令
曲線圖
plot3, ezplot3
低階函數
set(h, 'hori', 'center', 'vertical', 'bottom', 'color', 'r'); % 改變位置及顏色
end
end
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-2 :plotxyz002.m
MATLAB 程式設計入門篇:三維立體繪圖
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-11:plotxyz08.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
plot3:
上例中,所有的資料點都必需是在格子點上, MATLAB 才能根據每點的高度來作圖。如果所 給的資料點不在格子點上,我們必需先用 griddata 指令來進行內插法以產生格子點
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-3 :plotxyz011.m meshgrid 的作用是產生 x 及 y (均為向量) 為 基準的格子點 (Grid Points),其輸出為 xx 及 yy(均為矩陣),分別代表格子點的 x 座標及 y 座標。
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-6:plotxyz03.m
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
waterfall:
waterfall 指令可在 x 方向或 y 方向產生水流 效果
範例4-7:plotxyz04.m
[x, y, z] = peaks; waterfall(x,y,z); axis tight;
plot3(t.*sin(t), t.*cos(t), t); % 畫出 tsin(t),tcos(t),t 的曲線
MATLAB 程式設計入門篇:三維立體繪圖
4-1 基本立體繪圖指令
範例4-9:plotxyz06.m
MATLAB 程式設計入門篇:三維立體繪圖