c++ - Eigen 错误 : INVALID_MATRIX_PRODUCT multiplying vector and matrix

标签 c++ eigen

我正在使用 C++ 和 eigen。我尝试实现矩阵旋转,但出现此错误 Eigen\src/Core/GeneralProduct.h(410,3): error C2338: INVALID_MATRIX_PRODUCT

    Eigen::Vector3f box_pos = Eigen::Vector3f(-2.0f, 2.5f, -2.0f);
    box_pos *= RotY(5.0f);

旋转功能:

   Eigen::Matrix3f RotY(float angle) {
    float s = sin(angle);
    float c = cos(angle);
    Eigen::Matrix3f matrix;
    matrix << c, 0., s, 0., 1., 0., -s, 0., c;
    return matrix;
}

最佳答案

box_pos 是列 vector 。如果您编写 box_pos *= RotY(5.0f),您从右侧乘以矩阵,内部维度(1 和 3)不匹配。

您要么必须转置 box_pos 并使用行 vector ,要么将乘法重写为

box_pos = RotY(5.0f) * box_pos;

关于c++ - Eigen 错误 : INVALID_MATRIX_PRODUCT multiplying vector and matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58415685/

相关文章:

c++ - 通过 C++ 中的 switch 在运行时选择模板实例化

c++ - 如何在 C++ 中使用特征库导入矩阵市场文件

c++ - Qt 窗口关闭时如何释放内存?

c++ - COM : retrieve good CLSID

c++ - 单例的段错误

c++ - 在 Mac OS X 上为 XCode 安装 Eigen

c++ - Eigen 稀疏矩阵中非零元素的数量 - 二元运算符不变

c++ - Eigen:稀疏-密集积到普通 C++ 数组

c++ - Eigen LLT 模块给出不正确的结果?

.net - SQL Server Compact Edition 是否依赖于 .net 框架?