c – 如何从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仅适用于矩阵产品.

上一篇:c – 在Eigen中填充稀疏矩阵非常慢


下一篇:c – 存储指向Eigen Vector’segment’的指针而不复制?