2016-10-22 5 views
1

外部の行行列A(mxn)を持ち、結果のために外部の行行列B(nxm)を既に作成している転置は私が:固有値における外部行主要行列の転置を計算する方法

Map<MatrixXd,RowMajor> (B,n,m) = Map<MatrixXd,RowMajor> (A,m,n).transpose() 

ここで、AとBはデータバッファを指しています。これはcol-major行列のデフォルトの場合には問題なく動作しますが、行優先行列の場合、結果はm == n、m <> nの場合にのみ正しい結果となります。行内の外部データをマップする方法を誤解していますか?

答えて

2

Mapの2番目のテンプレート引数は、位置合わせ制御のためのものです。行の主要なレイアウトは、マトリックスタイプで指定する必要があります:

typedef Matrix<double,Dynamic,Dynamic,RowMajor> RowMajorMatrixXd; 
Map<RowMajorMatrixXd>(B,n,m) = Map<RowMajorMatrixXd>(A,m,n).transpose() 
+0

私はそれを試して、それは動作します、あなたは私の質問に答えました。 –

+0

残念なことに、このようにして、RowMajorMatrixXdとMatrixXdは2つの異なる型であり、それらを抽象化することは不可能になります。つまり、メソッドが引数として無関係に引数を取るようになります。 –

関連する問題