【matlab】meshgrid生成网格原理1

【matlab】meshgrid生成网格原理1

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


  • 画1维图的时候,我们的定义域是x轴,是1维的。
  • 画2维图的时候,我们的定义域是x轴和y轴,是2维的。


  • 在1维的情况下给定一个定义域[-3, 3],在计算机中是离散形式的,我们假设数据间隔是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个矩阵。

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

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

原文地址:https://www.cnblogs.com/shanchuan/p/8150347.html