Eigen und C++ Floats als Bytes speichern und Bytes zu Floats casten
-
Hallo Leute,
Folgendes Problem, ich besitze eine Datenklasse, in dieser befindet sich folgender Member:
Eigen::Matrix<unsigned char, Eigen::Dynamic, Eigen::Dynamic> binary_mat;
Jetzt habe ich aber eine Float Matrix, diese möchte ich ohne die Klasse zu ändern darin als binary speichern und dann wieder als float auslesen.
Meine Ideen und Ansätze:
Ich versuche das ganze mittels Eigen::Map zu lösen.
Float als Binary speichernEigen::Map<Eigen::Matrix<unsigned char, Eigen::Dynamic, Eigen::Dynamic>>( float_mat&, float_mat.rows(), float_mat.cols() * 4) binary_mat;
Das hier gibt zumindest keine Fehlermeldung. Das nächste hier schon, weil man wohl nicht von unsignes char zu float umwandeln kann. Jemand ne bessere Idee?:
Eigen::Map<Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic>>( binary_mat&, binary_mat.rows(), binary_mat.cols()/4) float_mat;
-
Probiere die
cast
-Funktion, s. Cast Eigen::MatrixXd to Eigen::MatrixXf, also:Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic> float_mat = binary_mat.cast<float>();