0
this Eigen pageに行くと<<
演算子でVectorXd
のオブジェクトを初期化することができます。いくつかのベクトルオブジェクトを1つの大きなVectorXd
オブジェクトにダンプすることもできます(たとえば、「コンマ初期化子」というセクションの3番目の例を参照してください)。`Eigen :: VectorXd`のコレクションを一つの大きな` Eigen :: VectorXd`にマージする
大きなベクトルにいくつかのベクトルをダンプしたいのですが、私は、任意の大きさのベクトルのコレクションで動作するコードを書くのに苦労しています。以下はうまくいきませんし、そういう形で書くのは苦労しています(それは二重ループではありません)。助言がありますか?
#include <iostream>
#include <Eigen/Dense>
#include <vector>
int main(int argc, char **argv)
{
// make some random VectorXds
std::vector<Eigen::VectorXd> vOfV;
Eigen::VectorXd first(3);
Eigen::VectorXd second(4);
first << 1,2,3;
second << 4,5,6,7;
vOfV.push_back(first);
vOfV.push_back(second);
// here is the problem
Eigen::VectorXd flattened(7);
for(int i = 0; i < vOfV.size(); ++i)
flattened << vOfV[i];
//shows that this doesn't work
for(int i = 0; i < 7; ++i)
std::cout << flattened(i) << "\n";
return 0;
}
あなたの言葉に少し注意する必要があります。 "固有ベクトル"は数学的な用語です(線形演算子を渡したものだけです) –
@MarcusMüllerは今編集しました。うまくいけば助けてください – Taylor
それは間違っています: 'i << vOfV.size()' –