c++ - pseint - unir dos matrices
Error al mezclar tipos con matrices Eigen (1)
Así que la forma de solucionar esto, que me llevó un tiempo molesto de encontrar, es usar el método de cast
derivado descrito here . Ahora la definición es esta:
internal::cast_return_type<Derived,const CwiseUnaryOp<internal::scalar_cast_op<typenameinternal::traits<Derived>::Scalar, NewType>, const Derived> >::type cast() const
Lo que voy a admitir, me eliminó un poco. Pero resulta que es bastante fácil (y la única explicación que pude encontrar fue en el documento Eigen 2.0 que fue frustrante). Todo lo que necesitas hacer es esto:
m2 = m1.cast<float>();
Problema resuelto.
No hubo una respuesta de búsqueda rápida que pudiera ver en la pila para este problema, así que pensé en agregar una.
Digamos que tengo el siguiente código de ejemplo de c ++ Eigen Library:
Eigen::Matrix4d m1;
Eigen::Matrix4f m2;
m1 << 1, 2, 3, 4 ... 16
m2 = m1; //Compile error here.
Recibo un error de compilación en la línea final que se reduce a esto:
YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
¿Qué es una manera fácil de arreglar esto?