我有2个向量和一个矩阵:
VectorXd A;
VectorXd B;
MatrixXd C;
我应该如何高效(没有明确的循环和快速工作) 计算矩阵C值,使
C(i,k) = A(i) * B(k);
假设矩阵C已经具有适当的尺寸。
重要提示:我只需要帮助使用内置的Eigen语法。请不要CUDA / MKL / BLAS建议。 谢谢。
答案 0 :(得分:5)
您正在寻找一种只是标准基质产品的外部产品:
C = A * B.transpose();
由于目标c
不与产品的操作数别名,您可以使用以下内容保存一个临时值:
C.noalias() = A * B.transpose();
noalias
仅对矩阵产品有意义。