TA的每日心情 | 开心 2023-5-15 15:14 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
/ c3 e. R& i. ~) V8 [0 d
2 O9 \2 `/ O* f- a" w4 R, V8 }可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
, d8 T; @2 p% o8 v( M7 Z" } Q( I4 f4 M
用法:( B) {6 K4 i4 v) G7 M
) G1 ~4 E' [0 K0 S, L
[X,Y]=meshgrid(x,y)( `5 B. _4 Y8 b* C* o
8 j) @/ ]& P- N; r- h/ C6 K! [
[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
- u2 M+ n2 `3 Q' C- I9 d b) j
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
s& z: Q* V5 {- j; J* @ Z( m9 m' \% E+ t& H
这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。
# Z* S; h' b8 j! @3 i& h& `# t4 \8 }& H/ {
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。; n) h3 x5 {3 f9 \. c; E1 n
7 e+ \ M' a9 C假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。: G+ Q @3 n5 w: z' O
0 Q) i' p3 a2 h. ~. U6 G
文字描述可能不是太好理解,下面通过代码演示下:
( V" M9 J* g: L. `, C. L/ K" t: ?* _2 M
加载数据# w+ S \+ u- V5 H6 ?
" V6 K# J& |9 _/ o' p) t3 H
import numpy as np6 ~% h. X# w9 V1 o; H
import matplotlib.pyplot as plt
7 g ~& [* M7 Q& j%matplotlib inline2 {7 T7 p `2 Q# |$ }
m, n = (5, 3)
4 W6 [: {) _, x! u2 E7 B& N9 I0 D3 Ix = np.linspace(0, 1, m)
; d) ^: q3 W& P- [" K, Ty = np.linspace(0, 1, n)
9 C8 g5 O9 G0 w1 ~- e2 z( \X, Y = np.meshgrid(x,y)4 F; A& D2 J* ~
|
|