TA的每日心情 | 开心 2023-5-15 15:14 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。. I9 R; u2 Y6 T7 {) |* a2 q- b. W
* X" a- {" }/ z可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
- C1 _& J: i/ _9 i$ L" Q1 ~/ U, a3 ^6 `3 R
用法:
6 X5 f. V9 r+ f+ w# `$ x0 q$ ?* Z6 \( S
[X,Y]=meshgrid(x,y)
' M" {/ t) u8 f2 ~
+ z; y( R o. m4 \ [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
& ~4 L; @ P+ o0 C$ g1 j
" ?4 @5 o' ?1 W- q! e [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图* T. l) d3 F Q% A* \. x1 ]3 E7 U
+ V( F. L7 U w' T' ~2 h" \
这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。
: D- [% }4 M0 V. x; g7 j& q3 _
% N- Y8 b4 Q# O6 u[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。
' j% ?; N0 q1 }5 Z# m3 x. J5 M) h- }$ n
假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。
7 ?! p) \; I( \+ _ J5 b$ Z* u3 z( ?8 v& Q4 ?7 W" c5 h1 N
文字描述可能不是太好理解,下面通过代码演示下:5 l# G% U- S% @0 X7 C: M" \
* O8 t9 P& D- Z' p J加载数据
6 c: X; `/ s! ~1 [; e- ?. ~" g$ w% \- f( E1 d# t: x. W
import numpy as np5 {, X h& p/ C; B8 l& }" n/ M
import matplotlib.pyplot as plt4 l, ~% a+ B8 v @$ I
%matplotlib inline" S! Q/ V) R1 V' i: ~4 \
m, n = (5, 3); b2 s) p) d* m; L. N% }
x = np.linspace(0, 1, m)
w/ S5 j1 ]# [: C. cy = np.linspace(0, 1, n)$ B( {" P2 Z$ ^) O
X, Y = np.meshgrid(x,y)( x' d% L5 g" z, T1 \( P6 C
|
|