Warum zum Teufel verfügt Eigen nicht über eine einfache Konstruktionsmethode, um ein Standard-2D-Array RICHTIG in eine Matrix umzuwandeln? Zum Beispiel:
Code: Select all
double a[3][3] = {{1,2,3},
{4,5,6},
{7,8,9}};
Ich möchte ein Eigen::Matrix3d aus einem erstellen. Keines der folgenden Ergebnisse liefert jedoch das richtige Ergebnis:
Code: Select all
Matrix3d b = Map(a[0]);
Matrix3d c = Map(a[0]);
Matrix3d d = Map(a[0]);
Diese geben alle dasselbe zurück, nämlich die mathematische Transponierte von a, d. h.
Ich denke, dass dies an der Art und Weise liegt, wie Eigen Daten speichert (Hauptspalte), ich denke jedoch, dass die bereitgestellten Optionen RowMajor, ColMajor, DontAlign würde einen Unterschied in der Art und Weise machen, wie es dargestellt wird.
Es ist verrückt für mich, dass das nicht so funktioniert, wie es ein Mathematiker oder Ingenieur erwarten würde. Vermisse ich etwas?