2017-02-13 9 views
0

Eigen3 MatrixXdクラスを使って行列をコピーする簡単な方法が必要です。そのために、私は新しいメソッドでヘッダファイルを作成し、コンパイルにインクルードするためにuEIGEN_MATRIXBASE_PLUGINマクロを使用します。 A.copyMatrix(B):単に A = B が、この形式で操作を行うと同じであるEigen3ベースクラスに新しいメソッドを追加するには?

私はcopyMatrix(という名前のメソッドを作成したいです)。

私は次のコードでそれをコーディングしようとすると: エラーC2678:バイナリ「=」:なしオペレータはタイプの左側のオペランドをとる見つからない

template<typename OtherDerived> 
inline void copyMatrix(const MatrixBase<OtherDerived>& other) const 
{ 
    derived() = other.derived(); 
} 

私のようなコンパイルエラーを持っています'const Eigen :: Matrix'(または許容できる変換はありません)

これは正しい構文ですか?

答えて

1

あなたの方法copyMatrixはそれを削除し、constあるので、これは次のとおりです。

template<typename OtherDerived> 
inline void copyMatrix(const MatrixBase<OtherDerived>& other) 
{ 
    derived() = other.derived(); 
} 
関連する問題