2

xがフロートの非固有ベクトルである場合、次のようにマップできますeigen::MatrixXf

MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);

ただし、メモリを共有しているため、 への変更も同様x_cenに報告されます。x私が望むのは、これを避けることです。への変更が に報告されないようにするためにx、にディープ コピーしたいと思います。どうすればそれができますか?eigen::MatrixXf x_cenx_cenx

4

1 に答える 1

4

あなたのコード:

MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);

はすでにディープ コピーを実行しています。だから、あなたは良いです。Eigen には浅いコピーはありません。

完全を期すために、Map<>オブジェクトに名前を付けて次のように使用できMatrixXfます。

Map<MatrixXf> x_cen(*x,*n,*p);

この場合、この場合にのみ、 への変更x_cenが に報告されxます。

于 2013-01-26T10:04:41.687 に答える