2012-12-05 66 views
0

在我的代碼中,我必須將矩陣A(維度3x3)與矢量b1(維度3x1)相乘,從而產生C。所以C = A*b1。現在,我需要重複這個過程n次保持A固定和更新b每次不同的(3x1)向量。這可以使用循環完成,但我想避免它來節省計算成本。相反,我想做它作爲矩陣和矢量產品。有任何想法嗎?在不使用循環的情況下將3x3矩陣乘以3nx1陣列

+1

如果你提前不知道'n',你可能會循環。每次找到「C」後(對於新的'b1'),你對結果做了什麼? –

+0

我事先知道。產品後,我將它添加到另一個3nx1陣列。 –

回答

2

需要構建b向量的矩陣,例如,用於n等於4:

bMat = [b1 b2 b3 b4]; 

然後:

C = A * bMat; 

提供3×4大小的這種情況下的解決方案。如果你想通過1長度3N的載體形式的解決方案,然後做:

C = C(:); 

我們可以構建bMat任意n沒有一個循環?這取決於你所有的b載體的形式是什麼。如果您在評論中告訴我,我可以更新答案。

+0

這工作。謝謝!你的C需要重新塑造,儘管3nx1 :)。感謝您及時的回覆。 –

+0

@JohnSmith很高興幫助。最好的感謝是通過點擊我回復旁邊的勾號來回答這個問題。另外,不要使用'reshape'來重塑'C'。我剛剛編輯了我的答案,提供了一種將矩陣重塑爲列向量的更快速的方法。乾杯。 –

+0

我試圖打勾,但顯然我必須等待8分鐘才能做到這一點:D –