刚学python没多久,对于为啥使用meshgrid函数一直有些困惑,今天顿悟了
假设我们要得出二维函数f(x,y) = x^2+y^2,x的范围是(0,5),y的范围也是(0,5),间隔设置为1
比较朴素的方法是
import numpy as np m = 11 n = 11 f = np.zeros((6,6)) for x in range(m): for y in range(n): f[x,y] = x**2+y**2
但是使用了meshgrid函数之后呢?
先生成两个一维数组
m = np.arange(6)
n = np.arange(6)
m,n的结果如下:
使用meshgrid函数
x,y = np.meshgrid(m,n)
f = x**2 + y**2 #矩阵元素相乘
x的结果如下
y的结果如下
x,y是两个维度相同的矩阵,运用矩阵对应元素相乘的方法,即可得到f,
取其中的一个元素作为例子f[2,5] = x[2,5]2+y[2,5]2 = 52+22
可见,使用meshgrid函数转化为矩阵的元素相乘,比第一种方法清爽的多