EDA365电子论坛网
标题:
meshgrid函数的作用是什么?
[打印本页]
作者:
loveeatmore
时间:
2020-4-17 11:10
标题:
meshgrid函数的作用是什么?
meshgrid函数的作用是什么?
- z+ D) ]% Z5 e9 Y: m2 T2 U
作者:
Heaven_1
时间:
2020-4-17 18:48
在Numpy的官方文章里,meshgrid函数的英文描述也显得文绉绉的,理解起来有些难度。
; d5 N1 d! y- J# g8 T
% _& N) x5 u w
可以这么理解,meshgrid函数用两个坐标轴上的点在平面上画网格。
8 Q; S+ j% R/ S/ \6 j! `/ S
5 U) H8 ?% u+ V" w6 z1 ~! G
用法:
: \) U" f% n& E2 p
5 E# l1 @7 D" H) |
[X,Y]=meshgrid(x,y)
$ Y2 ?) z J) P/ f! N6 C2 j7 K
* f$ [4 \ g" X3 q( _
[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
, h0 a; W6 P3 U$ w; V
) z/ B: y2 f, w4 k
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
k2 b: X' f( A. e- S5 ]4 l
% g( Y8 n, w6 l9 [: x$ N3 f. T
这里,主要以[X,Y]=meshgrid(x,y)为例,来对该函数进行介绍。
3 Y j! P/ D. p- z" k W/ g
1 L& Z- ]5 A# |* _ w1 K8 o" \- [" g
[X,Y] = meshgrid(x,y) 将向量x和y定义的区域转换成矩阵X和Y,其中矩阵X的行向量是向量x的简单复制,而矩阵Y的列向量是向量y的简单复制(注:下面代码中X和Y均是数组,在文中统一称为矩阵了)。
" Z' }8 A4 N8 G# ~: p8 h
# p$ v) Y5 A1 Z% `
假设x是长度为m的向量,y是长度为n的向量,则最终生成的矩阵X和Y的维度都是 nm (注意不是mn)。
2 u+ D$ k' W0 ~/ _# m2 s, ]/ J
0 k8 t' V& @3 Y8 P, @1 }8 w& _8 i5 s
文字描述可能不是太好理解,下面通过代码演示下:
9 x/ s* ]- W& h' u F* Y
, o/ S# p1 W$ E5 J( S' P$ P
加载数据
, h/ ^2 ?. q9 u" u+ R/ C5 i
- }$ H: f. ~ U
import numpy as np
+ }, X, g0 W9 ~5 }
import matplotlib.pyplot as plt
) q1 ?6 A' V% M% y( r( t5 e
%matplotlib inline
2 u: ^: |; ]+ N" G' R
m, n = (5, 3)
: J4 y/ }4 G) Z3 g
x = np.linspace(0, 1, m)
3 j1 z5 H6 w2 t! R- F" n
y = np.linspace(0, 1, n)
3 B3 ~: n3 E5 c1 f
X, Y = np.meshgrid(x,y)
+ ?4 i: C( j2 ?7 H% ]* X- x# W# W
作者:
NNNei256
时间:
2020-4-17 18:50
举个例子就明白了x=1:3;y=10:14;[X,Y] = meshgrid(x,y)
M+ N8 c, |+ i2 ^/ r
X =
y) ?4 I. P8 p* @% I R8 t
; S; l6 P3 B8 X5 j1 w3 i& {
1 2 3
( E5 i" X9 u' g4 M2 g X
1 2 3
0 {, C5 [1 y. o% P% }' T
1 2 3
2 P3 W' R3 m% L& m! z8 [
1 2 3
$ C y" K! K, A1 q: K
1 2 3
; e8 l) C3 [2 f
% w' u' _) a; v/ K9 g- @6 z
Y =
' g0 x( @5 W7 F; c4 W& a {- I
& B# M" E( L2 X$ L* [4 S; `6 [: ^
10 10 10
" _4 I, O- X5 F
11 11 11
' p2 q& X- I, Q( z/ T
12 12 12
0 |* M3 D W7 M& `; d
13 13 13
% p) S- X e% g% p5 {- k
14 14 14
( u& F5 x9 T# i8 m0 K
meshgrid的函数应该是这样编出来的:x=x1:d1:x2;y=[y1:d2:y2]';X=ones(size(y))*x;Y=y*ones(size(x))
$ r/ ]: o% a6 u1 f
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2