2016-08-25 8 views
1

vec - 固有値での演算子を実装する最良の(正規の)方法は何ですか?私はこの遍在的な演算子が実装されると確信していますが、私はドキュメントで見つけることができません。Eigenの標準vec演算子

現在、行列Mのために、私は:

Eigen::Map<Eigen::VectorXd> tmp(nullptr, 0); 
new (&tmp) Eigen::Map<Eigen::VectorXd>(M.data(), M.size()); 

答えて

0

それが実際の値の一部を変更することとして、あなたが探しているされていない、conservativeResizeがあります。個人的には、あなたの方法を使用します(新しいプレースメントを除く)。また、マップが整列していることを指定することもできます。マップは、異なるビュー(、例えばの形を整える)で同じメモリを見る方法です。実際に再構成されたオブジェクトが必要な場合は、マップを使用してコピーを作成できます。サイズが同じ場合は、no-opであるresizeを使用することもできます。私はサイズ変更が固定サイズの行列ではうまくいかないと考えていますが、Mapはそうです。以下のコードを実行してください。

Eigen::MatrixXf mat; 
mat.resize(3,3); 
mat << 1, 2, 3, 4, 5, 6, 7, 8, 9; 
std::cout << mat << "\n\n"; 
mat.resize(9, 1); 
std::cout << mat << "\n\n"; 
mat.conservativeResize(1, 9); 
std::cout << mat << "\n\n"; 
+0

すべてのサイズとフレーバー(動的、固定サイズ)のベクトルと行列に対して同じconservativeResizeメソッドを使用できますか? – Mankka

+0

リシェイプの例は、自分のコードを取得した場所ですが、実際のvec-operatorとはまだまだ離れています。 – Mankka

関連する問題