本征:从向量创建矩阵

问题描述

有两个向量:

Eigen::VectorXd A;
A  << 1,2,3,4;
Eigen::VectorXd B;
B  << 1,3;

如何从向量A和B创建跟随矩阵C?矩阵列等于向量A,向量B的元素是矩阵列因子。

Eigen::MatrixXd C;
C  << 1,4,6,9,8,12;

解决方法

Eigen中的向量是列向量,因此您可以编写如下内容:

Eigen::Vector4d A;
Eigen::Vector3d B;
A << 1,2,3,4;
B << 1,3;
const Eigen::MatrixXd C = A * B.transpose();

请注意,在内存中,数据以列主要方式排序。我提到这一点是因为它在我调试本征矩阵时第一次使我感到惊讶。