我很難進入numpy。我最終想要的是一個由矩陣變換的向量的簡單抖動圖。我讀過很多次只是使用矩陣的數組,足夠公平。我已經得到了X一meshgrid和y座標Numpy:將一個矩陣與一組向量相乘
X,Y = np.meshgrid(np.arange(0,10,2),np.arange(0,10,1))
a = np.array([[1,0],[0,1.1]])
但即使是谷歌搜索,並嘗試了兩個多小時後,我無法擺脫的a
矩陣乘法而且每個向量的所得載體。我知道顫抖將分量長度作爲輸入,所以進入顫抖函數的結果向量應該是類似於x分量的np.dot(a, [X[i,j], Y[i,j]]) - X[i,j]
,其中i和j遍歷範圍。
我當然可以在循環中編程,但numpy有很多內建工具可以使這些向量化的東西得心應手,我相信有更好的方法。
編輯:好的,這裏是循環版本。
import numpy as np
import matplotlib.pyplot as plt
plt.figure(figsize=(10,10))
n=10
X,Y = np.meshgrid(np.arange(-5,5),np.arange(-5,5))
print("val test", X[5,3])
a = np.array([[0.5,0],[0,1.3]])
U = np.zeros((n,n))
V = np.zeros((n,n))
for i in range(10):
for j in range(10):
product = np.dot(a, [X[i,j], Y[i,j]]) #matrix with vector
U[i,j] = product[0]-X[i,j] # have to substract the position since quiver accepts magnitudes
V[i,j] = product[1]-Y[i,j]
Q = plt.quiver(X,Y, U, V)
你期望結果看起來像什麼? a.shape =(2,2),X.shape =(10,5),Y.shape =(10,5)'。我沒有明白你的觀點... – jkalden 2014-11-24 13:46:45
你可以在循環中顯示一個簡單的版本(以便更容易地計算出你正在嘗試做什麼)? – atomh33ls 2014-11-24 13:51:04
完成。這實際上只是一個矢量場的矩陣,並且結果通過顫動箭頭可視化 – Basti 2014-11-24 14:03:32