Matlab之三维曲面的绘制

1、平面网格数据的生成

在绘制曲面之前,需要先将数据点生成平面数据网格,其生成的数据是网格的坐标。

生成的方式有两种:

(1)利用矩阵运算生成

代码示例:

x = 2:6;
y = (3:8)';
X = ones(size(y))*x;
Y = y*ones(size(x));

其中,X,Y为生成的网格数据,下图为网格数据的示意图。

(2)利用meshgrid函数生成

[X, Y] = meshgrid(x, y):其中,x、y为向量,存储网格点坐标的X、Y为矩阵。

代码示例:

x = 2:6;
y = (3:8)';
[X, Y] = meshgrid(x, y);

其效果与方法1效果相同。

2、使用mesh与surf函数绘制三维曲面图

函数功能:mesh函数绘制三维网格图,surf函数绘制三维网格图。

调用格式:

mesh(x, y, z, c)

surf(x, y, z, c)

其中,x、y为网格坐标矩阵,z为网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色(当不输入c时,使用z代表高度颜色)。

代码示例:

clc;
clear all;

t = -2:0.2:2;
[X, Y] = meshgrid(t);
Z = X.*exp(-X.^2 - Y.^2);
subplot(1,3,1);
mesh(X,Y,Z);title('网格图');
subplot(1,3,2);
surf(X,Y,Z);title('曲面图');
subplot(1,3,3);
plot3(X,Y,Z);title('线条图');
grid on

运行结果:

 3、拓展函数

其调用格式与mesh函数surf函数一致。 

代码示例:

clc;
clear all;

[x, y] = meshgrid(0:0.1:2, 1:0.1:3);
z = (x-1).^2 + (y-2).^2-1;
subplot(2,2,1);
meshc(x,y,z);title('meshc(x,y,z)');
subplot(2,2,2);
meshz(x,y,z);title('meshz(x,y,z)');
subplot(2,2,3);
surfc(x,y,z);title('surfc(x,y,z)');
subplot(2,2,4);
surfl(x,y,z);title('surfl(x,y,z)');

运行结果:

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值