TA的每日心情 | 开心 2023-5-15 15:14 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
1 p! I8 [$ @8 c! M$ D, c% }, [+ S" ]- t/ D& i& n
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
$ f' q; A: H* G* o1 c* ]' I' v
6 h' A& l7 d. f' w( X用法:8 G7 c, @% b; t( L. h
( a1 \7 R3 j" |* x9 X
[X,Y]=meshgrid(x,y)
1 _* g% U" K; }& P8 ?$ D `* L+ d
1 ]; ^' a; d: G2 @# Z, Q [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
$ P1 v5 {$ S, U2 r S5 |+ s& ?( x6 I# h+ S
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
9 S- R3 q. z: a. ?& A# Z E1 k- z6 |0 s3 H. M: f7 x/ b, E
这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。
3 z' ^0 l( E0 a; O/ n; {: l9 ~& l" C/ {
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。
0 J. f8 o; v, }: y G
+ K. H6 |% v3 i/ E2 j$ G假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。) V5 \8 F7 J$ }
' {7 B$ {% w l
文字描述可能不是太好理解,下面通过代码演示下:
6 n% {' B. q) s, T: n" {7 p) Y: B4 x, s* y$ D4 \: N, q4 C: d0 x+ `/ M
加载数据
( }2 k. V( f( K4 A3 A
x+ M' F4 K; ~% Limport numpy as np
% r- t, n4 ]/ @import matplotlib.pyplot as plt
: _0 e- V5 y( Y6 |%matplotlib inline$ ^( I$ P( P0 [3 u7 z
m, n = (5, 3)
+ \2 t- a( g( P; t& O% J3 Px = np.linspace(0, 1, m): Q1 v# f1 W6 i% q& Q
y = np.linspace(0, 1, n)1 r. G0 s, n) r
X, Y = np.meshgrid(x,y)
, t4 a$ A2 G% Q2 c; d9 N& n3 W" T: D |
|