如何从2个向量中创建特征矩阵

时间:2013-12-11 09:06:44

标签: c++ eigen

我有2个向量和一个矩阵:

VectorXd A;
VectorXd B;
MatrixXd C; 

我应该如何高效(没有明确的循环和快速工作) 计算矩阵C值,使

C(i,k) = A(i) * B(k);

假设矩阵C已经具有适当的尺寸。

重要提示:我只需要帮助使用内置的Eigen语法。请不要CUDA / MKL / BLAS建议。 谢谢。

1 个答案:

答案 0 :(得分:5)

您正在寻找一种只是标准基质产品的外部产品:

C = A * B.transpose();

由于目标c不与产品的操作数别名,您可以使用以下内容保存一个临时值:

C.noalias() = A * B.transpose();

noalias仅对矩阵产品有意义。