Python和MATLAB都是处理数据十分方便的工具,他们可以把将象复杂的数据转化为直观的图片。
meshgrid()存在于Python的Numpy库中,在MATLAB中可以直接使用。
作为数据处理的工具,大部分函数都直接明白、简单易学,但是meshgrid()函数…总有一种似懂非懂的感觉。
本篇旨在用简单通俗的语言讲明白meshgrid()函数到底是做什么用的。
官方解释
在Numpy的官方解释中,可以看到这样的说明:
numpy.meshgrid(* xi,copy = True,sparse = False,indexing =‘xy’ )
根据坐标向量返回坐标矩阵。
给定一维坐标数组x1, x2, …, xn,产生n维坐标数组以对应于n维网格上的n维标量/矢量场。
不知道是中英文化差异还是什么原因,反正这看起来就不像人话,就很离谱…看不懂。
不过,我的理解是先看一遍不讲人话的官方说明,然后再看通俗解释,这样理解起来更深刻也更容易。
通俗解释
meshgrid()函数适用于n维数据,这里以二维数据举例,容易理解。
meshgrid()的目的就是根据x值数组和y值数组创建一个矩形坐标。类似于x轴和y轴,但是这个x轴、y轴的范围和精度都是自己设定的。
再形象一点。
x数组和y数组都是从1到5的整数,要构建这样一个矩形网络。
要创建矩形网络,所以我们需要每一个点的组合。
x[0,0]=0 x[0, 1]=1 x[0,2]=2 x[0,3]=3 x[0,4]=4
x[1,0]=0 x[1, 1]=1 x[1,2]=2 x[1,3]=3 x[1,4]=4
.
.
x[0,4]=0 x[0, 4]=1 x[0,4]=2 x[0,4]=3 x[0,4]=4
y[0,0]=0 y[0,1]=0 y[0,2]=0 y[0,3]=0 y[0,4]=0
y[0,0]=0 y[0,1]=0 y[0,2]=0 y[0,3]=0 y[0,4]=0
y[1,0]=1 y[0,1]=1 y[0,2]=1 y[0,3]=1 y[0,4]=1
.
.
y[4,0]=0 y[4,1]=0 y[4,2]=0 y[4,3]=0 y[4,4]=0
数据的逻辑结构类似于这样:
4 04 14 24 34 44 0 1 2 3 4 4 4 4 4 4
3 03 13 23 33 43 0 1 2 3 4 3 3 3 3 3
y 2 >> 02 12 22 32 42 >> 0 1 2 3 4 2 2 2 2 2
1 01 11 21 31 41 0 1 2 3 4 1 1 1 1 1
0 00 10 20 30 40 0 1 2 3 4 0 0 0 0 0
0 1 2 3 4
x xy xx yy
import matplotlib