TA的每日心情 | 开心 2023-5-15 15:14 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。4 p/ [# S% M9 o9 y! y
d6 m9 {, K6 X) f j5 @- q可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
2 W" E/ G1 ]: Q: b3 S! Y. Q& Y* W# l% J* |. o9 F8 z
用法:
3 l1 O9 y& X4 c w1 S" F* S& C: Y g+ Q9 {( k. {* k5 ~/ j
[X,Y]=meshgrid(x,y)
# T! v1 f2 w% o4 f% [' S1 _7 s0 S& w. |1 f
[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
' J7 U! j+ I8 V8 g3 Q% r) n8 g$ Z- h" d3 z8 ~* `0 o( w& y+ `
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图2 N# G$ Y5 ~3 g
! A1 b: X! C" u9 P; Y! ~这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。# v; i, `% n/ Z
6 m: y& F3 B- n) S4 B[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。2 D) R) t' Z1 P5 s6 ]# z- ~* ^6 `
' q9 e9 e; g6 W假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。9 \1 g% w" m7 n
s8 U. |$ m; N) D7 M( U6 Y文字描述可能不是太好理解,下面通过代码演示下:
. {$ f% Q. Y0 C& ~. w
$ Q6 \' k |! O& C3 ~加载数据
$ J% v7 l, {6 B' V. i$ _
( G4 w) x1 J% y( f# Z' V2 O/ bimport numpy as np0 a1 N0 Q3 S: h n: T# p: u
import matplotlib.pyplot as plt
3 G, `$ ~7 K" w%matplotlib inline
. J5 f4 y- [, e" t7 @" W4 @7 W" um, n = (5, 3)- ?$ `1 j3 X4 P9 b, f1 p
x = np.linspace(0, 1, m)% {3 n( O: W. y5 p" G# G* s1 x
y = np.linspace(0, 1, n)) b% ], c8 k; w6 x
X, Y = np.meshgrid(x,y)2 }% {' E6 d0 X( j& g
|
|