matrix - 如何在 Eigen 中展开矩阵?

标签 matrix eigen matrix-multiplication

假设我有一个矩阵Eigen::Matrix<double, 3, 3>其条目是

1 2 3
4 5 6
7 8 9

如何将其扩展为

1 2 3 0
4 5 6 0
7 8 9 0
0 0 0 1

我需要它来将 3D 仿射/投影变换(4 x 4,在 Eigen::Transform 类型下)与 3D 旋转矩阵(3 x 3)相乘。

最佳答案

你想要conservativeResize :

Eigen::MatrixXf mat;
mat.resize(3,3);
mat << 1, 2, 3, 4, 5, 6, 7, 8, 9;
std::cout << mat << "\n\n";
mat.conservativeResize(4,4);
mat.col(3).setZero();
mat.row(3).setZero();
mat(3, 3) = 1;
std::cout << mat << "\n\n";

关于matrix - 如何在 Eigen 中展开矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39251946/

相关文章:

algorithm - 矩阵中最短距离中的最大值

c++ - 警告 : ISO C++ forbids variable length array

c++ - int p 不是 lpNorm<p> 中的常量表达式

c++ - 用 Boost.Python 包装 Eigen 的 operator()() 时的重载分辨率

c++ - Eigen eulerAngles() 返回不正确的值

python - 是否使用 numpy 的 dot 或 matmul 函数

arrays - 求多数组的交集

mysql查询结果作为基于不同表上的2个字段的矩阵表

R - 将 df 或矩阵的每一行与一个向量相乘

python - 矩阵-矩阵乘法的函数 numpy.dot()、@ 和方法 .dot() 之间有什么区别?