TA的每日心情 | 开心 2023-5-15 15:14 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
) @' H8 ^. X9 i7 R+ ~. s2 ~, u) j7 S: @* B0 j. J, u
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。5 f. y* C4 y3 ^3 v$ Y
/ _$ O* e' v( s9 G用法:
5 D2 T8 R0 f9 p0 Y* ^; u6 A+ {$ }( Z, ^3 R5 {0 O' {
[X,Y]=meshgrid(x,y)
4 U0 v0 P" k f2 M9 p7 l6 r& l9 S- v# O1 Y; |. M; g5 L, m
[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
% O& P" O$ q! q6 k. M/ l1 c" B% _( d6 o( M* K9 v: J$ G: B
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
3 ^# E2 v- y" t" S: f, y7 ^1 m' _# u( U! Y: d: b# @
这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。
8 M4 c& j# Y, y( m4 N5 I
: V4 v$ c S$ Q; o7 F8 ~[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。' ~/ E0 p, P8 {* B* t; z$ N
1 m! x; i' S m7 a( C- b' F& h$ T假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。6 M0 y" ]3 q: y5 P
6 ]9 s4 ^4 O0 `3 p
文字描述可能不是太好理解,下面通过代码演示下: T Y5 o$ _ X: X) }
' o: }% b. X3 V- _加载数据. u Z: Y& n5 j. }
2 y! w% V3 `6 n2 l, F, vimport numpy as np
" x4 x% l6 C" t$ m' {2 Timport matplotlib.pyplot as plt4 \9 U5 V0 z( ]; Z P/ v
%matplotlib inline
/ A1 ?0 \( p6 E( jm, n = (5, 3)& j. d, _! s3 R% O. G
x = np.linspace(0, 1, m)0 r# S6 j& ]/ R! r8 Z
y = np.linspace(0, 1, n)* F& m$ T: g5 z z- M
X, Y = np.meshgrid(x,y)
7 [: |: v0 L* U |
|