Eigen error : INVALID_MATRIX_PRODUCT multiplying vector and matrix
Eigen error : INVALID_MATRIX_PRODUCT multiplying vector and matrix
我正在使用 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);
RotY 函数:
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
是列向量。如果你写 box_pos *= RotY(5.0f)
你从右边乘以矩阵并且内部维度(1 和 3)不匹配。
您要么必须转置 box_pos
并使用行向量,要么将乘法重写为
box_pos = RotY(5.0f) * box_pos;
我正在使用 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);
RotY 函数:
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
是列向量。如果你写 box_pos *= RotY(5.0f)
你从右边乘以矩阵并且内部维度(1 和 3)不匹配。
您要么必须转置 box_pos
并使用行向量,要么将乘法重写为
box_pos = RotY(5.0f) * box_pos;