回答
通過ja72的anwser是錯誤的,查看其下我的意見,看看爲什麼。一般來說,在這些簡單的線性代數運算中,你的代碼不可能擊敗矢量化版本,即使你用C/mex編寫你的代碼也是如此(除非你的矩陣中有一定的稀疏結構,你可以在你的代碼中利用它)。原因在於,Matlab將矩陣乘法的實際工作傳遞給用Fortran編寫的Lapack庫,然後調用Blas庫,並根據特定的機器架構進行優化。
是矩陣乘法是A*B
並且逐個元素是A*.B
。如果A是(N×M的),B是(MXK)大小則C=A*B
代碼
更新
for i=1:N
for j=1:K
C(i,j) = A(i,:)*B(:,j)
end
end
真棒!怎麼做一個for循環比A * B快一點? –
for循環是否更容易緩存? –
實際上,爲了使循環更快,您可以切換「i」和「j」循環,使第一個數組索引更改爲最快。這與數組如何存儲在內存中有關。 – ja72
是的acai是正確的,我記得當我開始使用Matlab時想知道同樣的事情。只是提供一些更詳細的信息,acai說,LAPACK是線性代數包裝,它是很多其他語言用來解決這些類型的問題,Python使用SciPy,Java jlapack等連接到它。BLAS是基本線性代數子程序,它處理你所問的矩陣乘法的基本問題。 Acai也是正確的,你永遠無法擊敗Matlab給矩陣乘法的性能,這是他們的麪包和黃油,他們已經花了幾十年時間,優化這些操作的性能。
- 1. 乘法在Matlab
- 2. 乘法矩陣Matlab
- 3. MATLAB中數據的乘法
- 4. Matlab的:乘法運算
- 5. Matlab d維乘法表?
- 6. 乘法矢量一起MATLAB
- 7. Matlab的矩陣乘法誤差
- 8. Matlab有效的稀疏矩陣乘法
- 9. Matlab基於元素的矩陣乘法
- 10. iPython與Matlab - 簡單乘法的差異
- 11. matlab中的3維矩陣乘法
- 12. Matlab中的三角乘法表
- 13. Matlab錯誤的數組乘法?
- 14. 乘法細胞與基質Matlab的
- 15. 寫一個乘法MATLAB風格
- 16. Matlab:元素3D矩陣乘法
- 17. 高效矩陣乘法在Matlab
- 18. Matlab大矩陣乘法限制
- 19. Matlab矩陣乘法和轉置精度
- 20. MATLAB - 陣列和矩陣乘法
- 21. 乘法數字數組,並在Matlab
- 22. 用matlab單元塊矩陣乘法
- 23. MATLAB邏輯圖像uint8圖像乘法
- 24. 在matlab中構建乘法表
- 25. 在matlab中修改矩陣乘法
- 26. matlab矩陣元素單元乘法的替代方法
- 27. MATLAB中非常大的矩陣的高效乘法
- 28. Matlab的cpp文件中的矩陣乘法
- 29. MATLAB向量加法像乘法,而無需環路
- 30. 正常乘法的定點乘法
「A在X」是什麼意思? –