我有一個 2x2 旋轉矩陣和幾個存盤在 Nx2 陣列中的向量。有沒有辦法一次將它們全部旋轉(即全部乘以旋轉矩陣)?
我敢肯定有一個 numpy 方法,它只是不明顯。
import numpy as np
vectors = np.array( ( (1,1), (1,2), (2,2), (4,2) ) ) # 4 2D vectors
ang = np.radians(30)
m = np.array( ( (np.cos(ang), -np.sin(ang)),
(np.sin(ang), np.cos(ang)) )) # 2x2 rotation matrix
# rotate 1 vector:
m.dot(vectors[0,:])
# rotate all vectors at once??
uj5u.com熱心網友回復:
因為m有形有形(2,2),你可以簡單地做vectors(4,2)
dots = vectors @ m.T
然后每一行都i包含矩陣向量乘積m @ vectors[i, :]。
uj5u.com熱心網友回復:
另一種選擇是使用強大的einsum功能并執行以下操作:
dots = np.einsum("ij,kj->ik", vectors, m)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/453065.html
下一篇:2dNumpy中的所有二進制組合
