0%

Matlab编程——meshgrid函数:网格节点生成;三维立体图(函数)绘制

Matlab编程——meshgrid函数:网格节点生成;三维立体图(函数)绘制

  • 用法
      [X,Y]=meshgrid(x,y) %生成网格节点
    [X,Y]=meshgrid(x)是[X,Y]=meshgrid(x,x)简写
    [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图;
  • 例子:

eg1. 建立一个二维网格;(要求xx是-3到3,间隔为1;yy是-2到2,间隔为1)

程序如下:

1
2
3
4
5
clc;
clear;%双清
x=-3:1:3; %生成-3到3,间隔为1的向量
y=-2:1:2; %生成-2到2,间隔为1的向量
[X,Y]= meshgrid(x,y) %建立网格,并标记节点坐标

运行结果如下图:

二维网格生成

可以看出,生成的是5×7网格,从结果可以看出每个节点的坐标,如下图所示:

QQ浏览器截图20220716103732

利用网格可以绘制三维图,如下例:

eg2. 先建立一个二维网格(要求xx是-2到2,间隔为0.2;yy是-1到3,间隔为0.2),并绘制函数:(1)f(x,y)=100(yx2)2+(1x)2f(x,y)=100(y-x^2)^2+(1-x)^2和(2)f(x,y)=x2+y2f(x,y)=x^2+y^2

代码如下:函数(1)绘制

1
2
3
4
5
6
xx=-2:.2:2;%生成-2到2,间隔为0.2的向量
yy=-1:.2:3;
[X,Y]=meshgrid(xx,yy);%生成网格
Z1=100*(Y-X.^2).^2+(1-X).^2;%函数(1)
Z2=X.^2+Y.^2;%函数(2)
surfc(X,Y,Z1)%绘制函数(1)

运行结果如下:

函数(1)

函数(2)绘制

1
2
3
4
5
xx=-2:.2:2;%生成-2到2,间隔为0.2的向量
yy=-1:.2:3;
[X,Y]=meshgrid(xx,yy);%生成网格
Z2=X.^2+Y.^2;%函数(2)
surfc(X,Y,Z2)%绘制函数(2)

结果如下:

函数(2)