matlab中mesh函数用法,matlab中的meshgrid命令怎么用(matlab三维作图教程)

本文介绍了MATLAB中用于三维作图的mesh和meshgrid函数,包括如何绘制三维曲线图、三维斜面以及如何设置颜色、光照和聚焦点。通过示例展示了如何使用这些函数创建各种三维图形,如条形图、杆图、饼状图、瀑布图和等高线图,以及如何进行图象处理和制作动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三维曲线图

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。其使用方法与mesh相近,不一样的是meshc仍在xy平面图上绘图斜面在z轴方位的等值线,meshz仍在xy平面图上绘图斜面的基座。

例 在xy平面图内挑选地区[-8,8]×[-8,8],绘图4种三维斜面图。

程序流程以下:

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

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

subplot(2,2,1);

mesh(x,y,z);

title('mesh(x,y,z)')

subplot(2,2,2);

meshc(x,y,z);

title('meshc(x,y,z)')

subplot(2,2,3);

meshz(x,y,z)

title('meshz(x,y,z)')

subplot(2,2,4);

surf(x,y,z);

title('surf(x,y,z)')

3.规范三维斜面

sphere涵数的启用文件格式为:(圆球,行业,半球型,社交圈)

[x,y,z]=sphere(n):generates three(N 1)-by-(N 1) matrices so that SURF(X,Y,Z) produces a unit sphere.

cylinder涵数的启用文件格式为:(圆桶,圆柱,面层)

[x,y,z]= cylinder(R,n),在其中r为圆上半经,n为构成圆上的等级。

MATLAB还有一个peaks 涵数,称之为多峰涵数,常见于三维斜面的演试。

例 绘图规范三维斜面图型。

程序流程以下:

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

[x,y,z]= cylinder(2 sin(t),30);

subplot(2,2,1);

surf(x,y,z);

subplot(2,2,2);

[x,y,z]=sphere;

surf(x,y,z);

subplot(2,1,2);

[x,y,z]=peaks(30);

surf(x,y,z);

别的三维图型

在详细介绍二维图型时,曾提及条形图、杆图、饼状图和添充图等独特图型,他们还能够以三维方式出現,应用的涵数分别是bar3、stem3、pie3 和fill3。

bar3函数绘制三维条形图,常见文件格式为:

bar3(y)

bar3(x,y)

stem3函数绘制离散变量编码序列数据信息的三维杆图,常见文件格式为:

stem3(z)

stem3(x,y,z)

pie3函数绘制三维饼状图,常见文件格式为:

pie3(x)

fill3涵数等效于三维涵数fill,可在三维空间内绘图出添充过的不规则图形,常见文件格式为:

fill3(x,y,z,c)

例 绘图三维图型:

(1) 绘图魔矩阵的三维条形图。

(2) 以三维杆图方式绘图曲线图y=2sin(x)。

(3) 已知x=[2347,1827,2043,3025],绘图饼状图。

(4) 用任意的顶点坐标值绘制五个淡黄色三角形。

程序流程以下:

subplot(2,2,1);

bar3(magic(4))

subplot(2,2,2);

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

stem3(y);

subplot(2,2,3);

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

subplot(2,2,4);

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

例 绘图多峰涵数的瀑布图和等高线图。

程序流程以下:

subplot(1,2,1);

[X,Y,Z]=peaks(30);

waterfall(X,Y,Z)

xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');

subplot(1,2,2);

contour3(X,Y,Z,12,'k'); %在其中12意味着高宽比的等等比级数

xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');

图型装饰解决

聚焦点解决MATLAB出示了设定聚焦点的涵数view,其启用文件格式为:

view(az,el)

在其中az为方向角,el为仰角,他们均以度为企业。系统软件默认设置的聚焦点界定为方向角-37.5°,仰角30°。

例 从不一样聚焦点绘图多峰涵数斜面。

程序流程以下:

subplot(2,2,1);mesh(peaks);

view(-37.5,30); %特定子图1的聚焦点

title('azimuth=-37.5,elevation=30')

subplot(2,2,2);mesh(peaks);

view(0,90); %特定子图2的聚焦点

title('azimuth=0,elevation=90')

subplot(2,2,3);mesh(peaks);

view(90,0); %特定子图3的聚焦点

title('azimuth=90,elevation=0')

subplot(2,2,4);mesh(peaks);

view(-7,-10); %特定子图4的聚焦点

title('azimuth=-7,elevation=-10')

颜色解决

1.色调的向量表示

MATLAB除用标识符表示颜色外,还能够用带有3个原素的向量表示色调。空间向量原素在[0,1]范畴赋值,3个原素各自表明红、绿、蓝3种色的相对性色度,称之为RGB三元组。

2.色图

色图(Color map)是MATLAB系统软件引进的定义。在MATLAB中,每一个图型对话框只有有一个色图。色图是m×3 的标值引流矩阵,它的每一行是RGB三元组。色图引流矩阵能够人为因素地形成,还可以启用MATLAB出示的涵数来界定色图引流矩阵。

3.三维表层图型的上色

三维表层图事实上便是在网格的每一个网格图上面涂上色调。surf涵数用默认设置的上色方法对网格图片上色。此外,还能够用shading指令来更改上色方法。

shadingfaceted指令将每一个网格图片用其高宽比相匹配的色调开展上色,但网格线仍保存着,其shading flat指令将每一个网格图片要同一个色调开展上色,且网格线也用相对的色调,进而促使图型表层看起来更为光洁。

shading interp指令在网格图片内选用色调插值法解决,得到的表层图看起来最光洁。

色调是灰黑色。它是系统软件的默认设置上色方法

例 3种图型上色方法的实际效果展现。

程序流程以下:

[x,y,z]=sphere(20);

colormap(copper);

subplot(1,3,1);

surf(x,y,z);

axis equal

subplot(1,3,2);

surf(x,y,z);shading flat;

axis equal

subplot(1,3,3);

surf(x,y,z);shading interp;

axis equal

光照处理

MATLAB出示了灯光效果设定的涵数,其启用文件格式为:

light('Color',选项1,'Style',选择项2,'Position',选择项3)

光照处理后的曲面。

程序流程以下:

[x,y,z]=sphere(20);

subplot(1,2,1);

surf(x,y,z);axis equal;

light('Posi',[0,1,1]);

shading interp;

hold on;

plot3(0,1,1,'p');text(0,1,1,' light');

subplot(1,2,2);

surf(x,y,z);axis equal;

light('Posi',[1,0,1]);

shading interp;

hold on;

plot3(1,0,1,'p');text(1,0,1,' light');

图型的剪裁解决

例4-22 绘图三维斜面图,并开展插值法上色解决,裁去图上x和y都低于0一部分。

程序流程以下:

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

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

surf(x,y,z);shading interp;

pause %程序流程中止

i=find(x<=0&y<=0);

z1=z;z1(i)=NaN;

surf(x,y,z1);shading interp;

为了更好地展现剪裁实际效果,第一个斜面绘图进行后中止,随后表明剪裁后的斜面。

图象处理与制作动画

图象处理

1.imread和imwrite涵数

imread和imwrite涵数各自用以将位图文件读取MATLAB工作中室内空间,及其将图象数据信息和色图数据信息一起载入一定文件格式的位图文件。MATLAB适用多种多样图象格式文件,如.bmp、.jpg、.jpeg、.tif等。

2.image和imagesc涵数

这两个涵数用以图象表明。为了更好地确保图象的表明实际效果,一般还应应用colormap涵数设定图象色图。

例5-23 有一位图文件flower.jpg,在图型对话框表明该图象。

程序流程以下:

[x,cmap]=imread('flower.jpg'); %载入图象的数据信息阵和色图阵

image(x);colormap(cmap);

axis image off %维持高宽比并撤消纵坐标

制作动画

MATLAB出示getframe、moviein和movie涵数开展制作动画。

1.getframe函数

getframe函数可提取一幅界面信息内容(称之为动漫中的一帧),一幅界面信息内容产生一个非常大的列向量。显而易见,储存n幅图面就需一个大引流矩阵。

2.moviein函数

moviein(n)涵数用于创建一个充足大的n列引流矩阵。该引流矩阵用于储存n幅界面的数据信息,以便播放视频。往往要事前创建一个大引流矩阵,是为了更好地提升程序执行速率。

3.movie涵数

movie(m,n)涵数播放视频由引流矩阵m所界定的界面n次,默认设置时播放视频一次。

例 绘图了peaks涵数斜面而且将它绕z轴转动。

程序流程以下

[X,Y,Z]=peaks(30);

surf(X,Y,Z)

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

axis off;

shading interp;

colormap(hot);

m=moviein(20); %创建一个20列大引流矩阵

for i=1:20

view(-37.5 24*(i-1),30) %更改聚焦点

m(:,i)=getframe; %将图型储存到m引流矩阵

end

movie(m,2); %播放视频界面2次

MATLAB三维网图的高級解决

4.1. 圆化解决

例.较为网图圆化前后左右的图型

z=peaks(50);

Subplot(2,1,1);

mesh(z);

title('圆化前的图')

hidden off

subplot(2,1,2);

mesh(z);

title('圆化后的图')

hidden on

colormap([0 0 1])

lbhla1is2m2-yseo_com.jpg

www.sEo-6.comhttp://www.seo-6.com/xqsb/170388.html

(编辑:部分内容来互联网)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值