Eigene Matrix3d-Konstruktion aus 2D-DoppelarrayC++

Programme in C++. Entwicklerforum
Guest
 Eigene Matrix3d-Konstruktion aus 2D-Doppelarray

Post by Guest »

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.

Code: Select all

[1, 4, 7,
2, 5, 8,
3, 6, 9]
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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post