非本征浮点*的深拷贝到eigen :: MatrixXf

时间:2013-01-26 01:00:38

标签: c++ eigen

如果x是浮点数的非本征向量,我可以通过以下方式将其映射到eigen::MatrixXf

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

但是,x_cen的修改也会报告给x,因为他们正在共享内存。我想要的是避免这种情况。我想将x深度复制到eigen::MatrixXf x_cen,以确保不会向x_cen报告对x所做的更改。怎么可能 可以吗?

1 个答案:

答案 0 :(得分:4)

您的代码:

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

已经做了很深的复制!所以你很好。 Eigen没有浅拷贝。

为了完整起见,可以将Map<>对象命名为MatrixXf使用它:

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

在这种情况下,只有在这种情况下,才会向x_cen报告对x的修改。