如果x
是浮点数的非本征向量,我可以通过以下方式将其映射到eigen::MatrixXf
:
MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);
但是,x_cen
的修改也会报告给x
,因为他们正在共享内存。我想要的是避免这种情况。我想将x
深度复制到eigen::MatrixXf
x_cen
,以确保不会向x_cen
报告对x
所做的更改。怎么可能
可以吗?
答案 0 :(得分:4)
您的代码:
MatrixXf x_cen=Map<MatrixXf>(*x,*n,*p);
已经做了很深的复制!所以你很好。 Eigen没有浅拷贝。
为了完整起见,可以将Map<>
对象命名为MatrixXf
使用它:
Map<MatrixXf> x_cen(*x,*n,*p);
在这种情况下,只有在这种情况下,才会向x_cen
报告对x
的修改。