如何将 svd.MatrixV() 中的最后一列转换为 3 x 3 矩阵?

How can I convert the last column in svd.MatrixV() to 3 by 3 matrix?

我使用以下方法获得了奇异值分解的 V 矩阵中的第 9 列:

svd.matrixV().array().col(8)

该列由 9 个元素组成。 3.6 -0.0148 -1.922 -4.177 0.0135 -0.00389 -2.29 -0.98 0.21

Eigen 中有没有可以将 svd.MatrixV() 的 9 元素列转换为 3 x 3 矩阵的方法?

您可以使用 Eigen::Map as follows:

Eigen::Map<Eigen::MatrixXf> col_map {svd.matrixV().array().col(8).data(), 3, 3};

然后可以将此地图分配给新矩阵

Eigen::MatrixXf col_mat {col_map};