2次元の倍精度配列をEigen :: Matrixにマップすることが可能かどうか、またどのようにしてマップすることはできません。 double** p
として受け取った配列double d[][]
をEigen :: Matrixにマップできますか?2次元配列をEigen :: Matrixにマップする
1次元配列は正常に機能しますが、p
をEigen::Map<Eigen::Matrix<double, n, n>>
にマッピングできませんでした。それは可能なのですか?サイズn
は実際には一定ではありませんが、ハードコードされたサイズを受け入れることができます。
私はいくつかのバージョンを試しましたが、うまくいきませんでした。私は次のことがうまくいくと思った(サイズn
は4と仮定する)。
Eigen::Map<Eigen::Matrix<double, 4, 4>> p_OUTPUT(&p[0][0]);
コードはコンパイルされ実行されますが、最初の列の要素と2番目の列の最初の要素のみが正しい値をマップします。引数としてp[0]
を使用すると同じ結果が得られます。 私が試した他のバージョン(たとえば、&
なし)はコンパイルされませんでした。
はあなたがしようとしたものを表示し、あなたが達成したいことはできますか? 'n'はコンパイル時定数ですか?そして、あなたは 'p'が 'double **'ですか? –
@AviGinsburgご返信ありがとうございます、私は私の質問を完了しました。サイズ 'n'は定数ではありませんが、ハードコードされたサイズはOKです。 そして、 'p [row] [col] + = ...'が機能するので、 'p'は' double ** 'です。 – AnBr
[this](http://stackoverflow.com/a/33669013/2899559)の記事を参照してください。 –