2016-02-29 68 views
0

我正試圖計算由b = A * x給出的變換。 A是(3,4)矩陣。如果x是一個(4,1)向量,則結果是b(3,1)。多輸入計算矩陣產品

相反,對於x我有一堆連接成一個矩陣向量的和我試圖評估變換x的每個值。所以x是(20,4)。如何在numpy中廣播這個數據,以便得到b(20,3)的20個結果值?

我可以遍歷每個輸入和計算輸出,但它的感覺就像必有用廣播的更好的方法。

例如,

A = [[1,0,0,0], 
[2,0,0,0], 
[3,0,0,0]] 

如果x是:

x = [[1,1,1,1], 
[2,2,2,2]] 

b = [[1,2,3], 
[2,4,6]] 

x的每一行乘以A和結果存儲爲b中的行。

+0

「爲×1有一串向量連接成一個矩陣,我試圖評估x的每個值的變換,所以x是(20,4)。「 < - 你能詳細說明一下這個例子嗎? –

+0

'b = A.dot(x.T).T' – Jaime

回答

0

numpy的點

import numpy as np 

A = np.random.normal(size=(3,4)) 

x = np.random.normal(size=(4,20)) 

y = np.dot(A,x) 

print y.shape 

結果:(3,20)

當然,如果你想(20,3),你可以使用np.transpose()

+0

謝謝!這是一個簡單的解決方案。 – user1159898