TA的每日心情 | 开心 2023-5-15 15:14 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
5 [2 Q( N% L$ _, f( ]2 t U+ Z/ l' M$ u! M
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。: M! w4 ~9 u6 j' }$ ] i( P7 W% w r
4 R" H& s0 R/ `5 s: W+ z0 a
用法:4 t- b5 X4 L' U% }' }7 X
9 f5 O7 K6 s( U2 ]- j4 I [X,Y]=meshgrid(x,y)% A% v) t( b9 n& E0 s$ V3 a# ?
$ ?1 P7 ], |% g2 Q* P [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的& C y, w3 S% H- ^
( {+ d- }' x e9 v/ R
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
: A- X2 n a3 @8 m- z; A
. k3 B1 \. z3 [; h这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。4 W# f9 g1 H' v8 b
: T; c9 T# ^1 D; f
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。; F$ x5 M$ G7 }0 K, Y
) b1 c, X4 X$ B1 x: s1 k, I% p( P8 Z% C* y假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。
v4 U4 h# p# P
( M5 t. ?$ F" a1 a文字描述可能不是太好理解,下面通过代码演示下:
/ U# x( @* ]3 l, Y3 F8 y# M. z, C, Q; g" ?" Y+ y& t+ `
加载数据
7 V. B6 v5 T8 y1 y' M( X d
. z9 F' r( O: s0 Zimport numpy as np. ?( j/ `5 X3 q6 `6 {
import matplotlib.pyplot as plt, D( G6 h0 [* e. |( j( }4 U' \. n/ J% r
%matplotlib inline
: Y; r$ E5 R, I4 _' O* em, n = (5, 3)
0 t, k+ w" Q5 s; tx = np.linspace(0, 1, m)
" _8 m6 ~. v9 x3 E% iy = np.linspace(0, 1, n)* a6 |0 |( |, L) T/ H, }
X, Y = np.meshgrid(x,y)
& E5 D9 e% k6 G |
|