TA的每日心情 | 开心 2023-5-15 15:14 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。" n. ]8 S! N2 v2 \3 O) w2 ]3 Y$ Q2 {
8 Z& F; i) w2 \7 D
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
' H9 w4 C/ W( _1 I
3 [% y1 ^3 w* d- M$ Q用法:8 f6 \4 @+ x2 z1 H" B7 e! I
- R( }8 y2 `! G w
[X,Y]=meshgrid(x,y)# \+ }5 ~1 K9 A1 ?! @0 R
5 [. Q8 v2 Y, d( e6 I4 | [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
/ j4 o$ C+ E4 }' f% n& c. L
/ U* |' \: C& Q3 N [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
1 N/ C1 g3 {7 D4 X4 z; Q! f* D4 Q" ^: l3 M' f
这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。, ^. M Y2 f' {0 e: ~( q
! A5 D# @# r. O8 G0 q
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。, x. N, V8 G+ Z, W' C
( g' m! K0 F) k& S& I- ?! J假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。1 G; |. w9 Z, b6 ~3 l% L9 f
9 v4 {- A( ]! @2 j文字描述可能不是太好理解,下面通过代码演示下:
. o4 x) { q: o( j
4 [: _& f! Q4 s加载数据
; C6 G3 W+ V! d6 Z9 |1 {, R$ J
8 V7 y. R" f6 j. f$ b) W# w2 timport numpy as np
2 S$ c7 | o# V& Limport matplotlib.pyplot as plt& t) y& A: M% k# _
%matplotlib inline8 F5 e, R U' _" f
m, n = (5, 3)
$ [5 W- K8 g$ G9 ex = np.linspace(0, 1, m)5 \+ @! ^$ m" x. D
y = np.linspace(0, 1, n)/ B& a5 Q. l0 X) I# {/ N0 }, W$ X
X, Y = np.meshgrid(x,y)
4 e2 N3 j0 n& F4 a( N3 X" f/ @ |
|