2
我有2個向量和矩陣:如何創建特徵矩陣出2個載體
VectorXd A;
VectorXd B;
MatrixXd C;
我應該怎樣有效的(沒有明確循環和工作快) 計算矩陣C的值,使得
C(i,k) = A(i) * B(k);
假設矩陣C已經有適當的尺寸。
重要提示:我只需要幫助使用內置的Eigen語法。請不要CUDA/MKL/BLAS建議。 謝謝。
我有2個向量和矩陣:如何創建特徵矩陣出2個載體
VectorXd A;
VectorXd B;
MatrixXd C;
我應該怎樣有效的(沒有明確循環和工作快) 計算矩陣C的值,使得
C(i,k) = A(i) * B(k);
假設矩陣C已經有適當的尺寸。
重要提示:我只需要幫助使用內置的Eigen語法。請不要CUDA/MKL/BLAS建議。 謝謝。
你正在尋找一個外部的產品這僅僅是一個標準的矩陣產品:
C = A * B.transpose();
由於目的地c
沒有別名與該產品的操作可以節省一個臨時有:
C.noalias() = A * B.transpose();
noalias
僅適用於矩陣產品。
謝謝!這是我真正需要的。 –
你是否需要做到這一點沒有循環或儘可能有效地做到這一點?最小複雜度應爲A.size()* B.size(),因爲這些是您希望計算的元素的數量。 –
@AbhishekBansal謝謝你的回答。我明白漸近算法的複雜性總是O(A.size()* B.size()),但係數很重要。 Eigen具有不尋常的語法,所以我只是不知道如何寫沒有循環的表達式。 –