TA的每日心情 | 开心 2023-5-15 15:14 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。! F: \+ h* X! s3 a
) M7 ~! ^ ?7 h$ P8 r
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。+ x% g8 K. _/ h6 m. `" O0 u0 ~1 h# k
6 E4 ]5 t0 Y! W" g- j用法:
+ P' q8 c4 L: Z" b; U& P9 P3 E
- O4 q9 S& O$ W! k [X,Y]=meshgrid(x,y)7 r' I8 w1 ]5 G Q8 j8 p4 w
9 }9 O) X+ r% G7 r% q3 O [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的7 b4 ^' Q4 p" V2 d3 P, x
! e- Y2 V; N; ~# F2 \0 W! C# Y1 G
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
9 S% E d" s) e+ S+ f, y. p
9 z0 C8 V' W W% H7 w2 W4 D这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。& Z+ u5 f8 H" g0 H# O" Q/ L
4 w/ m0 g2 }9 B5 K! r- n
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。
% a. x- ^! @, W0 f% Q
/ Z' M% H8 z: }' S# L假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。
( u+ [2 t4 K# U$ }
" ~4 z5 g8 @% H3 M) \6 R% @+ Z文字描述可能不是太好理解,下面通过代码演示下:
! T7 Z n, ^: L8 _+ ^: Y: X& K- `# G: ~9 y
加载数据
5 h) k1 V) P( w9 s
! e$ N A3 j: D6 Z& D% ?( l2 }import numpy as np
( E$ v1 g5 V% l: c- _# s1 C K! i2 W9 wimport matplotlib.pyplot as plt
" P/ ^( W6 m. b# R; Z- m* E%matplotlib inline
& o# l5 }$ R" T& V# c3 Um, n = (5, 3)
5 B9 B0 J/ D$ n7 o2 ~% D8 K1 Vx = np.linspace(0, 1, m)
+ M% |2 P1 d: ^/ C$ g- Yy = np.linspace(0, 1, n)7 I- O+ Z* M9 _4 y" C
X, Y = np.meshgrid(x,y)
/ \7 c; M3 o3 }! D |
|