如何将特征块深度复制到向量中?
how to deep copy eigen block into a vector?
我加载了一个特征矩阵 A(5,12),我想分配一个新的特征向量作为矩阵 A 第一行的前 7 个值。
不知何故,它不起作用...
后来我才知道块returns是一个指向原始数据的指针。如何将block深拷贝到Eigen Vector中?
Eigen::MatrixXd A(5,12);
Eigen::VectorXd B(12); B = A.row(0);
Eigen::VectorXd C(7); C = B.head(7);
块block
、col
、row
、head
等方法。return查看原始数据,但运算符=
总是执行深拷贝,所以你可以简单地写:
VectorXd C = A.row(0).head(7);
这将执行一次深拷贝。使用 Eigen 3.4 slicing API,您还可以编写:
VectorXd C = A(0,seqN(0,7));
我加载了一个特征矩阵 A(5,12),我想分配一个新的特征向量作为矩阵 A 第一行的前 7 个值。 不知何故,它不起作用...
后来我才知道块returns是一个指向原始数据的指针。如何将block深拷贝到Eigen Vector中?
Eigen::MatrixXd A(5,12);
Eigen::VectorXd B(12); B = A.row(0);
Eigen::VectorXd C(7); C = B.head(7);
块block
、col
、row
、head
等方法。return查看原始数据,但运算符=
总是执行深拷贝,所以你可以简单地写:
VectorXd C = A.row(0).head(7);
这将执行一次深拷贝。使用 Eigen 3.4 slicing API,您还可以编写:
VectorXd C = A(0,seqN(0,7));