MATLAB笔记---绘制三维图像

记录几个MATLAB中绘制三维图像的常用函数

1.plot3(x,y,z) /plot3(x,y,z,LineSpec) 用于绘制三维空间中的坐标

需要注意的是当你要绘制由线段连接的一组坐标,那么就将 x、y、z 指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,那么就将 x、y、z 中的至少一个指定为矩阵,其他指定为向量。

LineSpec可以是指定的线型、标记或颜色。如“-”表示实线,“–”表示虚线,“r”图像变为红色,“y”图像变为黄色。
现在通过几个实例看一下绘制效果

t = linspace(-10,10,1000);
xt = exp(-t./10).*sin(5*t);
yt = exp(-t./10).*cos(5*t);
p = plot3(xt,yt,t);p.LineWidth=4;//绘制后更改线宽

在这里插入图片描述

t = 0:pi/500:pi;
//创建包含三行 x 坐标的矩阵 X。创建包含三行 y 坐标的矩阵 Y 
X(1,:) = sin(t).*cos(10*t);
X(2,:) = sin(t).*cos(12*t);
X(3,:) = sin(t).*cos(20*t);

Y(1,:) = sin(t).*sin(10*t);
Y(2,:) = sin(t).*sin(12*t);
Y(3,:) = sin(t).*sin(20*t);
//创建矩阵 Z,其中包含所有三组坐标的 z 坐标。
Z = cos(t);
plot3(X,Y,Z)//绘制多条曲线
legend('1','2','3')

在这里插入图片描述

2.stem3(x,y,z) 将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸,其中 X 和 Y 指定 xy 平面中的针状图位置。X、Y 和 Z 输入必须是大小相同的向量或矩阵。

该函数用于绘制三维离散数据图形

figure;
[X,Y] = meshgrid(0:.1:1);//meshgrid函数用于生成网格矩阵
Z = exp(X+Y);
stem3(X,Y,Z)

在这里插入图片描述

figure
X = linspace(-pi/2,pi/2,40);
Z = [sin(X); cos(X)];
stem3(Z)

在这里插入图片描述

3.mesh(x,y,z) 创建一个网格图,该网格图为三维曲面,有实色边颜色,无面颜色。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。边颜色因 Z 指定的高度而异。

用于生成网格曲面图

[X,Y] = meshgrid(-8:.5:8);//生成网格矩阵
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
mesh(X,Y,Z,C)
colorbar//产生色阶的颜色栏

在这里插入图片描述
mesh函数还有其他格式,如mesh(___,C) 进一步指定边的颜色。进一步指定边的颜色;mesh(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,‘FaceAlpha’,0.5 创建半透明网格图。

4.surf(x,y,z) 创建一个三维曲面图,它是一个具有实色边和实色面的三维曲面。该函数将矩阵 Z 中的值绘制为由 X 和 Y 定义的 x-y 平面中的网格上方的高度。曲面的颜色根据 Z 指定的高度而变化。

常用的生成曲面图的函数

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = X.*Y;
surf(X,Y,Z,C)
colorbar

在这里插入图片描述
此外,surf(X,Y,Z,C) 还指定曲面的颜色。surf(___,Name,Value) 使用一个或多个名称-值对组参数指定曲面属性。例如,‘FaceAlpha’,0.5 创建半透明曲面。

5.contour(x,y,z)

常用的生成等高线图的函数

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
contour(X,Y,Z)
colorbar

在这里插入图片描述

若是想生成带标签的等高线,可用函数contour(X,Y,Z,‘ShowText’,‘on’)实现。

6.meshgrid(x,y) /meshgrid(x,y,z)

用于生成二维或三维的网格
[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。

实例1:
使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标,并在二维网格上计算表达式 x 2 + y 2 x^2+y^2 x2+y2

x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X.^2 + Y.^2

在这里插入图片描述
实例2:
使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格,并在二维网格上计算并绘制函数 f ( x , y ) = x e − x 2 − y 2 f(x,y) =xe^{-x^2-y^2} f(x,y)=xex2y2

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);
F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

在这里插入图片描述

  • 9
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Karen_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值