TA的每日心情 | 开心 2023-5-15 15:14 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
& |# }& r9 C5 S8 q3 l; [3 f
& \* f1 h8 S. K) r4 |( j可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
+ l) v0 l4 {( d ` R4 A+ `
5 o6 N# K+ [! v. _9 e8 n/ ?用法:
8 r, m. m: S6 @2 D' W- c" l! F' A! t% v) Z3 M& e/ h$ D# C
[X,Y]=meshgrid(x,y), o+ X( K0 i j" G( t/ C7 ?
3 P8 V4 {- K4 H/ i( e [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的# Z) c5 X8 o3 G6 s/ m& P
- u1 u, I, _+ J8 C6 S [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图. e8 d' L2 i7 I* w# g4 t
7 c+ g7 n" `. b$ {这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。# s: X" o+ L5 n2 z' B
1 _- s) T+ l6 M' c
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。
6 z5 d4 ?- z8 u5 o0 U# G
2 G; {! B4 T2 {. B% X- g1 Y假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。) f. H# X# s5 n" I5 M( w+ _' L, Q
" v# C0 o4 N1 x" r+ W, Q2 n, B
文字描述可能不是太好理解,下面通过代码演示下:! ~& f7 ^1 `" j" j- h3 a! Y
; M6 R1 J8 }& k- |7 y加载数据
6 e; f6 h8 A( q1 O# B4 v, h0 f$ L+ g! Q8 B# L6 V0 q
import numpy as np
% m* s$ O' B4 M7 p# `5 L0 Pimport matplotlib.pyplot as plt
& I# d; W9 T6 K* I0 S%matplotlib inline
- ~- x: g v* j0 U% \m, n = (5, 3)1 w+ ]7 S. _: F8 I) o
x = np.linspace(0, 1, m)
! T9 a) P' @& w4 _# ky = np.linspace(0, 1, n)1 b W. S9 Q/ I" R
X, Y = np.meshgrid(x,y)) i* _# y# q' e8 ?
|
|