2017-02-02 7 views
0

Ich versuche, eine 4x4-Matrix zu initialisieren und dann der Matrix später durch einen Funktionsaufruf Werte zuzuweisen. Dies ergibt einen Fehler;Initialisierung der Matrix in Eigen

EXC_BAD_ACCESS 

Ich weiß, dass dieser Fehler auftritt, wenn ich versuche, Zugriff nicht verfügbar oder nicht zugewiesenen Speicherort im Speicher. Aber laut Eigendokumentation Beispiel, this ist, wie es geht.

Dies ist meine Header-Datei Initialisierung.

MatrixX4d T; 

Dies ist meine Implementierung Datei Funktionsaufruf.

MatrixX4d RobotArm::substitute(double theta, double alpha, double a, double d) 
{ 
    RobotArm::T << cos(theta), -sin(theta), 0, a, 
       (sin(theta)*cos(alpha)), (cos(theta)*cos(alpha)), -sin(alpha), (-sin(alpha)*d), 
       (sin(theta)*sin(alpha)),(cos(theta)*sin(alpha)), cos(alpha), (cos(alpha)*d), 
       0, 0, 0, 1; 
    cout << T; 
    return T; 
} 

Was mache ich falsch? Vielen Dank.

Antwort

0
MatrixX4d T 

ist halbdynamische Matrix.

, sondern

Matrix4d T 

funktioniert.

0

Wenn Sie MatrixX4d als 4x4 verwenden möchten, ändern Sie die Größe zunächst auf 4x4.

Verwandte Themen