2016-12-08 18 views
0

double []の配列をEigen :: Matrix4d型に変換する方法を理解できません。double []をEigen :: Matrix4dに変換する

私が実行してしようとしています:

Eigen::Matrix4d transform = map<Eigen::Matrix4d>(M->data,M->nrows,M->ncols); 

Mは次のとおりです。任意の助けmatd_t *M

typedef struct 
{ 
    int nrows, ncols; 
    double data[]; 
// double *data; 
} matd_t; 

感謝。

答えて

0

これはかなり愚かな誤りだった:)

私は私の解決策を見つけた:

Eigen::Matrix4d transform = Eigen::Map<Eigen::Matrix4d>(M->data,M->nrows,M->ncols); 

基本的に私が代わりに固有地図機能のC++ mapを使用していました。

これで機能します。

+2

計算中にデータを直接使用するように名前を付けることができます: 'Map transform(M-> data);' – ggael

+1

また、固定サイズの行列(またはベクトル)を'Eigen :: Matrix4d transform(M-> data);'(これはマッピングの代わりに値をコピーします)を使用することができます。 – chtz

関連する問題