刚学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函数转化为矩阵的元素相乘,比第一种方法清爽的多