【Matlab】三维绘图函数汇总

本文用于汇总 Matlab 中的三维绘图函数。plot3() 函数用于绘制用参数方程表示的三维曲线。ezplot3() 函数用于三维曲线的符号绘图,需要用参数方程表示。mesh() 函数用于绘制三维曲面网格。surf() 函数用于绘制三维空间曲面。

目录

1. plot3()

2. ezplot3()

3. mesh()

4. surf()


1. plot3()

        plot3() 函数用于绘制三维曲线,需要用参数方程表示,plot3() 的用法与 plot() 函数类似。以下是 Matlab 关于 plot3() 函数的语法说明。

plot3(X,Y,Z) 绘制三维空间中的坐标。

  • 要绘制由线段连接的一组坐标,请将 XYZ 指定为相同长度的向量。

  • 要在同一组坐标轴上绘制多组坐标,请将 XY 或 Z 中的至少一个指定为矩阵,其他指定为向量。

示例:绘制三维螺旋图

将 t 定义为由介于 0 和 10π 之间的值组成的向量。将 st 和 ct 定义为正弦和余弦值向量。然后绘制曲线。

t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot3(st,ct,t)

2. ezplot3()

        ezplot3() 函数用于三维曲线的符号绘图,需要用参数方程表示。以下是 Matlab 关于 ezplot3() 函数的语法说明。

ezplot3(funx,funy,funz)

在默认域 0 < t < 2π 中绘制空间曲线 funx(t)funy(t) 和 funz(t)

funxfuny 和 funz 可以是函数句柄、字符向量或字符串。

示例:绘制参数曲线

在 [0,6π] 区间上绘制此参数化曲线。

\left\{\begin{matrix} x = sin(t)\\ y = cos(t)\\ z = t \end{matrix}\right.

ezplot3('sin(t)','cos(t)','t',[0,6*pi])

3. mesh()

        mesh() 函数用于绘制三维曲面网格,网格上的点由 X,Y,Z 三个矩阵给出。以下是 Matlab 关于 mesh() 的用法说明。

mesh(X,Y,Z)

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

示例:绘制墨西哥帽子。

由函数  z = sin(r)/r 确定的曲面,其中 r = \sqrt{x^{2}+y^{2}}, (-a < x < a, -a < y < a)

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

4. surf()

        surf() 函数用于绘制三维空间曲面,曲面上的点由 X,Y,Z 三个矩阵给出。以下是 Matlab 关于 surf() 的用法说明。

surf(X,Y,Z)

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

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Matlab中绘制三维函数图,可以使用“isosurface”和“patch”函数。下面是一个简单的例子: 假设我们要绘制方程x^2 + y^2 + z^2 - 4 = 0的隐函数图。 ``` % 定义隐函数方程 f = @(x,y,z) x.^2 + y.^2 + z.^2 - 4; % 定义绘图范围 xmin = -2; xmax = 2; ymin = -2; ymax = 2; zmin = -2; zmax = 2; % 生成网格数据 [x,y,z] = meshgrid(linspace(xmin,xmax,50),linspace(ymin,ymax,50),linspace(zmin,zmax,50)); % 计算隐函数值 v = f(x,y,z); % 绘制等值面 isosurface(x,y,z,v,0); % 设置绘图参数 axis equal; axis([-2 2 -2 2 -2 2]); xlabel('x'); ylabel('y'); zlabel('z'); ``` 在上面的代码中,“meshgrid”函数生成了三维网格,其中x,y和z是三个矩阵,每个元素代表一个三维点的坐标。然后,我们计算了隐函数的值,并使用“isosurface”函数绘制了等值面。最后,我们设置了绘图参数,包括坐标轴标签和绘图范围。 如果要绘制多个等值面,可以使用“patch”函数和“isovalue”参数。例如,下面的代码绘制了方程x^2 + y^2 + z^2 - 4 = 0的两个等值面: ``` % 定义隐函数方程 f = @(x,y,z) x.^2 + y.^2 + z.^2 - 4; % 定义绘图范围 xmin = -2; xmax = 2; ymin = -2; ymax = 2; zmin = -2; zmax = 2; % 生成网格数据 [x,y,z] = meshgrid(linspace(xmin,xmax,50),linspace(ymin,ymax,50),linspace(zmin,zmax,50)); % 计算隐函数值 v = f(x,y,z); % 绘制等值面 p1 = patch(isosurface(x,y,z,v,0),'FaceColor','red','EdgeColor','none'); p2 = patch(isosurface(x,y,z,v,8),'FaceColor','blue','EdgeColor','none'); % 设置绘图参数 axis equal; axis([-2 2 -2 2 -2 2]); xlabel('x'); ylabel('y'); zlabel('z'); ``` 在这个例子中,我们使用“patch”函数创建了两个等值面。第一个等值面的值为0,颜色为红色,第二个等值面的值为8,颜色为蓝色。注意,“isosurface”函数返回的是一个三维矩阵,而“patch”函数需要的是一个二维矩阵,所以我们要将“isosurface”函数的输出作为“patch”函数的输入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

洋洋Young

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

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

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

打赏作者

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

抵扣说明:

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

余额充值