Meshgrid函數的基本用法
meshgrid函數用兩個座標軸上的點在平面上畫網格。
用法:
[X,Y]=meshgrid(x,y)
[X,Y]=meshgrid(x)與[X,Y]=meshgrid(x,x)是等同的
[X,Y,Z]=meshgrid(x,y,z)生成三維數組,可用來計算三變量的函數和繪製三維立體圖
這裏,主要以[X,Y]=meshgrid(x,y)爲例,來對該函數進行介紹。
[X,Y] = meshgrid(x,y) 將向量x和y定義的區域轉換成矩陣X和Y,其中矩陣X的行向量是向量x的簡單複製,而矩陣Y的列向量是向量y的簡單複製(注:下面代碼中X和Y均是數組,在文中統一稱爲矩陣了)。
假設x是長度爲m的向量,y是長度爲n的向量,則最終生成的矩陣X和Y的維度都是 n*m (注意不是m*n)。
文字描述可能不是太好理解,下面通過代碼演示下:
加載數據
import numpy as np import matplotlib.pyplot as plt m, n = (5, 3) x = np.linspace(0, 1, m) # 創建數組 y = np.linspace(0, 1, n) X, Y = np.meshgrid(x,y)
查看矩陣X和矩陣Y
X [[0. 0.25 0.5 0.75 1. ] [0. 0.25 0.5 0.75 1. ] [0. 0.25 0.5 0.75 1. ]] Y [[0. 0. 0. 0. 0. ] [0.5 0.5 0.5 0.5 0.5] [1. 1. 1. 1. 1. ]]
meshgrid函數的運行過程,可以通過下面的示意圖來加深理解:
在matplotlib中進行可視化,
plt.scatter(X, Y) plt.show()
Meshgrid函數的一些應用場景
Meshgrid函數常用的場景有等高線繪製及機器學習中SVC超平面的繪製(二維場景下)。
分別圖示如下:
(1)等高線
(2)SVC中超平面的繪製: