0

Eigen でベクトルまたは行列として使用するために、より複雑なデータを含む配列を適応させることが可能かどうか疑問に思います。

例:

struct data
{
    /* some members...*/
    double numericValue;
    /* more members...*/
};
std::vector<data*> dataset;

numericValueメンバーにアクセスし、計算にデータセットを使用する方法を eigen に伝えることは可能ですか? ドキュメントでマップクラスを見つけましたが、必要な機能は見つかりませんでした。何か案は?

4

1 に答える 1

1

あなたの質問が正しく理解できているかどうかわかりませんが、要素がインターリーブされた構造化データがあり、固有演算を実行するためにベクトルまたはマトリックスに結合したいと考えています。

これがあなたの興味のあるものなら、確かにMap タイプはあなたの友達です。次の式は、あなたが望むものを与えるはずです(テストされていません):

typedef Map<VectorXd, 0, InnerStride<sizeof(data)/sizeof(double)> > MyMap;
MyMap map( &dataset[0].numericValue, dataset.size() );

今、あなたは例えば次のようなことができます

map *= 2.0;

すべての numericValue メンバーに 2.0 を掛けます。

于 2012-03-21T10:00:28.917 に答える