【Matlab】meshgrid生成网格原理1

迁移自CSDN:【Matlab】meshgrid生成网格原理1

用matlab画2维图的时候,对meshgrid这个函数困惑了很久。

  • 画1维图的时候,我们的定义域是x轴,是1维的。
  • 画2维图的时候,我们的定义域是x轴和y轴,是2维的。
  • 在1维的情况下给定一个定义域[-3, 3],在计算机中是离散形式的,我们假设数据间隔是1,那么我的定义哉数值就是这样的:
1
[-3 -2 -1 0 1 2 3]
  • 在2维的情况下给定一个定义域:x[-3, 3] y[-2, 2],还是间隔1取值,那应该是这样的(y轴特意换了个方向,3维的时候指向我们的):

这里写图片描述

我们生成函数的时候是这样做的:$Z=f(X,Y)$ 即给f两个参数,X和Y,得到Z。如果要生成下面这个点的函数:

这里写图片描述

那么应该这样取值:

$X = 2 , Y = -1$

那我们怎样给出在定义域里面的所有的XY呢?用下面两个矩阵就可以解决问题:

这里写图片描述

XY2个矩阵大小相等,我们在XY2个矩阵中对应的位置取值就可以得到对应点的XY坐标,代入公式就可以得到函数值。

meshgrid要做的事情就是由给的参数(-3:1:3, -2:1:2),获得XY这2个矩阵。

1
[X,Y] = meshgrid(-3:1:3, -2:1:2);

运行代码后,就会得到上面的XY这2个矩阵。