Meshgrid 函数的基本用法
在 Numpy 的官方文章里, meshgrid 函数的英文描述也显得文绉绉的,理解起来有些难度。可以这么理解, meshgrid 函数用两个坐标轴上的点在平面上画网格。
用法:
[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x) 与 [X,Y]=meshgrid(x,x) 是等同的
[X,Y,Z]=meshgrid(x,y,z) 生成三维数组,可用来计算三变量的函数和绘制三维立体图
这里,主要以 [ X , Y ]= meshgrid ( x , y ) 为例,来对该函数进行介绍。 [ X , Y ] = meshgrid ( x , y ) 将向量 x 和 y 定义的区域转换成矩阵 X 和 Y , 其中矩阵 X 的行向量是向量 x 的简单复制,而矩阵 Y 的列向量是向量 y 的简单复制 ( 注:下面代码中 X 和 Y 均是数组,在文中统一称为矩阵了 ) 。假设 x 是长度为 m 的向量, y 是长度为 n 的向量,则最终生成的矩阵 X 和 Y 的维度都是 n * m (注意不是 m * n )。文字描述可能不是太好理解,下面通过代码演示下:
点击查看代码
import numpy as np
import matplotlib.pyplot as plt
m,n=(5,3)
x=np.linspace(0,1,m)
y=np.linspace(0,1,n)
X,Y=np.meshgrid(x,y)
print('x:',x)
print('y:',y)
print('X:',X)
print('Y:',Y)
点击查看代码
x: [0. 0.25 0.5 0.75 1. ]
y: [0. 0.5 1. ]
X: [[0. 0.25 0.5 0.75 1. ]
[0. 0.25 0.5 0.75 1. ]
[0. 0.25 0.5 0.75 1. ]]
Y: [[0. 0. 0. 0. 0. ]
[0.5 0.5 0.5 0.5 0.5]
[1. 1. 1. 1. 1. ]]
点击查看代码
print(X.shape)
print(Y.shape)
plt.plot(X,Y,marker='1',color='red',linestyle='')
plt.show()
点击查看代码
(3, 5)
(3, 5)