Initialisiere ein Eigen :: MatrixXd aus einem 2d std :: Vektor

8

Das sollte hoffentlich ziemlich einfach sein, aber ich kann keinen Weg finden, es in der Eigen-Dokumentation zu tun.

Angenommen, ich habe einen 2D Vektor, zB

std::vector<std::vector<double> > data

Angenommen, es ist mit 10 x 4 data set gefüllt.

Wie kann ich diese Daten verwenden, um ein Eigen::MatrixXd mat auszufüllen?

Der naheliegendste Weg ist die Verwendung einer for-Schleife wie folgt:

%Vor%

Aber es sollte einen besseren Weg geben, der Eigen ist?

    
Fantastic Mr Fox 16.09.2013, 23:56
quelle

1 Antwort

9

Sicher. Sie können die gesamte Matrix nicht gleichzeitig ausführen, da vector<vector> einzelne Zeilen im zusammenhängenden Speicher speichert, aber aufeinanderfolgende Zeilen möglicherweise nicht zusammenhängend sind. Sie müssen jedoch nicht alle Elemente einer Zeile zuweisen:

%Vor%     
us2012 17.09.2013, 00:10
quelle

Tags und Links