知乐空间

matlab三维作图教程(matlab中的meshgrid命令怎么用)

三维曲线

Plot3函数在用法上与Plot函数非常相似,其调用格式为:

图3(x1,y1,z1,选项1,x2,y2,z2,选项2,...,XN,YN,锌,选项N)

其中每组x,y,z y,z构成一组曲线的坐标参数,选项的定义与绘图函数相同。当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);

标题(三维空间中的线条

xlabel(X)Y ylabel(Y zlabel(Z

三维表面

1.生成3D数据

在MATLAB中,利用网格函数生成平面区域的网格坐标矩阵。格式为:

x = a:D1:b;y = c:D2:d;

[X,Y]=meshgrid(x,Y);

语句执行后,矩阵X的每一行都是向量X,行数等于向量Y的元素个数,矩阵Y的每一列都是向量Y,列数等于向量X的元素个数。

2.绘制三维曲面的功能

surf函数和mesh函数的调用格式为:

网格(x,y,z,c):绘制一个网格表面,追踪空之间的数据点,并将它们连接成一个网格。

Surf(x,y,z,c):绘制一个完整的曲面,并绘制由数据点表示的曲面。

一般来说,x,y,z,y,z是相同维数的矩阵。x,y为网格坐标矩阵,z为网格点的高度矩阵,c用于指定不同高度的颜色范围。

绘制三维表面图形的示例z=sin(x+sin(y))-x/10。

程序如下:

[x,y]= mesh grid(0:0.25:4 * pi);%在[0,4pi][0,4pi]区域生成网格坐标。

z = sin(x+sin(y))-x/10;

网格(x,y,z);

轴([0 4 * pi 0 4 * pi-2.5 1]);

此外,还有带轮廓的三维网格曲面函数meshc和带基座的三维网格曲面函数meshz。其用法与mesh类似,只是meshc也在xy平面上绘制Z轴方向的曲面轮廓,meshz也在xy平面上绘制曲面的底面。

例如,在xy平面中选择区域[-8,8][-8,8],并绘制四种三维表面图。

程序如下:

[x,y]= mesh grid(-8:0.5:8);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

子剧情(2,2,1);

网格(x,y,z);

标题(网格(x,y,z))

子剧情(2,2,2);

meshc(x,y,z);

标题(网格(x,y,z))

子剧情(2,2,3);

meshz(x,y,z)

标题(meshz(x,y,z))

子剧情(2,2,4);

surf(x,y,z);

标题(冲浪(x,y,z))

3.标准三维表面

球面函数的调用格式为:(球面、域、半球、圆)

[x,Y,Z]=球面(N):生成三个(N+1)-乘-(N+1)矩阵,这样SURF(X,Y,Z)生成一个单位球面。

柱面函数的调用格式是:(柱面,柱面,柱面)

[x,y,z]=圆柱体(R,n),其中R为圆的半径,n为构成圆的点数。

MATLAB还有一个峰值函数,叫做多峰值函数,常用于演示三维曲面。

绘制标准三维表面图形的示例。

程序如下:

t = 0:pi/20:2 * pi;

[x,y,z]=圆柱体(2+sin(t),30);

子剧情(2,2,1);

surf(x,y,z);

子剧情(2,2,2);

[x,y,z]=球体;

surf(x,y,z);

子剧情(2,1,2);

[x,y,z]=峰值(30);

surf(x,y,z);

其他三维图形

在介绍2D图形时,提到了条形图、条形图、饼图和填充图等特殊图形。它们也可以以3D形式出现。使用的函数分别是bar3、stem3、pie3和fill3。

Bar3功能绘制三维条形图,常用的格式是:

bar3(y)

bar3(x,y)

Stem3函数绘制离散序列数据的三维条形图,常用格式为:

stem3(z)

stem3(x,y,z)

Pie3函数绘制三维饼图。常见的格式是:

pie3(x)

fill3函数相当于三维函数fill,可以三维空绘制填充的多边形。常见的格式是:

填充3(x,y,z,c)

绘制三维图形示例:

(1)绘制魔方阵列的三维条形图。

(2)以三维条形图的形式绘制曲线y=2sin(x)。

(3)给定x=[2347,1827,2043,3025],画一个饼图。

(4)画五个顶点坐标值随机的黄色三角形。

程序如下:

子剧情(2,2,1);

bar3(魔法(4))

子剧情(2,2,2);

y = 2 * sin(0:pi/10:2 * pi);

stem 3(y);

子剧情(2,2,3);

pie3([2347,1827,2043,3025]);

子剧情(2,2,4);

fill3(rand(3,5),rand(3,5),rand(3,5),y)

绘制多模态函数的瀑布图和等高线图。

程序如下:

子剧情(1,2,1);

[X,Y,Z]=峰值(30);

瀑布(X,Y,Z)

X轴,Y轴,Z轴

子剧情(1,2,2);

Contour3(X,Y,Z,12,k%其中12代表高度的级别数。

X轴,Y轴,Z轴

图形装饰处理

处理视点MATLAB提供了设置视点的函数视图,其调用格式为:

视图(az,el)

其中az是方位角,el是仰角,两者都以度为单位。系统的默认视点定义为方位角-37.5°和仰角30°。

示例从不同的角度绘制多模态函数曲面。

程序如下:

子剧情(2,2,1);网格(峰值);

视图(-37.5,30);%指定子图1的视点。

标题(方位角=-37.5,仰角=30)

子剧情(2,2,2);网格(峰值);

视图(0,90);%指定子图2的视点。

标题(方位角=0,仰角=90)

子剧情(2,2,3);网格(峰值);

视图(90,0);%指定子图3的视点。

标题(方位角=90,仰角=0)

子剧情(2,2,4);网格(峰值);

视图(-7,-10);%指定子图4的视点。

标题(方位角=-7,仰角=-10)

彩色处理

1.颜色的矢量表示

除了用字符来表示颜色,MATLAB还可以用包含三个元素的向量来表示颜色。向量取值在[0,1]范围内,三个元素代表红、绿、蓝三色的相对亮度,称为RGB三重。

2.彩色地图

彩色地图是由MATLAB系统引入的概念。在MATLAB中,每个图形窗口只能有一个色图。彩色图是m3的数值矩阵,每一行都是RGB三元组。可以人工生成色图矩阵,也可以调用MATLAB提供的函数定义色图矩阵。

3.三维表面图形的着色

三维表面绘制实际上是给网格图的每个网格块着色。Surf函数通过默认的着色方法对网格片进行着色。此外,着色命令也可用于更改着色模式。

Shadingfaceted命令用其高度对应的颜色给每个网格块着色,但网格线保持不变。“着色平面”命令用相同的颜色给每个网格块着色,网格线也使用相应的颜色,从而使图形表面看起来更平滑。

Shading interp命令在网格切片中使用颜色插值处理,得到的表面图像最平滑。

颜色是黑色的。这是系统默认的着色方法。

三种图形着色方法的效果演示。

程序如下:

[x,y,z]=球体(20);

彩色地图(铜);

子剧情(1,3,1);

surf(x,y,z);

等轴

子剧情(1,3,2);

surf(x,y,z);遮光平;

等轴

支线剧情(1,3,3);

surf(x,y,z);阴影interp

等轴

光照处理

MATLAB提供灯光设置功能,其调用格式为:

灯光(颜色,选项1,样式,选项2,位置,选项3)

照明后的球体。

程序如下:

[x,y,z]=球体(20);

子剧情(1,2,1);

surf(x,y,z);轴相等;

光(Posi,[0,1,1]);

阴影interp

坚持住;

plot3(0,1,1,p’);文本(0,1,1,光

子剧情(1,2,2);

surf(x,y,z);轴相等;

光(Posi,[1,0,1]);

阴影interp

坚持住;

plot3(1,0,1,p文本(1,0,1,光

基于

示例4-22:三维曲面绘制、插值和着色处理,裁剪出X和Y小于0的部分。

程序如下:

[x,y]= mesh grid(-5:0.1:5);

z=cos(x)。*cos(y)。*exp(-sqrt(x.^2+y.^2)/4);

surf(x,y,z);阴影interp

暂停%程序已暂停

i=find(x =0 y

Z1 = z;Z1(I)= NAn;

surf(x,y,Z1);阴影interp

为了显示裁剪效果,绘制后暂停第一个曲面,然后显示裁剪后的曲面。

图像处理和动画

图像处理

1.imread和imwrite函数

读和写功能用于将图像文件读入MATLAB workshop 空并将图像数据和色图数据写入一定格式的图像文件。MATLAB支持多种图像文件格式,如。bmp,。jpg,。jpeg,。tif等。

2.图像和图像功能

这两个功能用于图像显示。为了保证图像的显示效果,还应该使用colormap功能来设置图像的色图。

示例5-23有一个图像文件flower.jpg,显示在图形窗口中。

程序如下:

[x,cmap] = imread (flower.jpg%读取图像的数据数组和颜色数组。

图像(x);彩色地图(cmap);

轴关闭%保持纵横比并取消坐标轴。

动画制作

MATLAB为动画提供getframe、moviein和movie函数。

1.getframe函数

Getframe函数可以截取一个图片信息(动画中称为一帧),形成一个大的列向量。显然,保存n张图纸需要一个大矩阵。

2.移动功能

moviein(n)函数用于构建足够大的n列矩阵。矩阵用于存储n张图片的数据以供播放。提前构建大矩阵的原因是为了提高程序的运行速度。

3.电影功能

电影(m,n)功能将矩阵m定义的图片播放n次,默认播放一次。

示例绘制峰值函数曲面,并围绕z轴旋转它。

程序如下

[X,Y,Z]=峰值(30);

冲浪(X,Y,Z)

轴([-3,3,-3,3,-10,10])

轴关闭;

阴影interp

colormap(热图);

m = movie in(20);%创建一个包含20列的大矩阵。

因为i=1:20

视图(-37.5+24*(i-1),30)%更改视点。

m(:,I)= get frame;%将图形保存到M矩阵

结束

电影(m,2);%播放图片两次。

三维网络图的MATLAB高级处理

4.1.下料处理

例子。比较网络图消隐前后的图形。

z =峰值(50);

子剧情(2,1,1);

网格(z);

标题(消隐前的图形)

隐藏起来

子剧情(2,1,2);

网格(z);

标题(消隐后的图形)

隐藏在

彩色地图([0 0 1])

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。

留言与评论(共有 0 条评论)
验证码: