我加载一个特征矩阵 A(5,12),我想指定一个新的特征向量作为矩阵 A 第一行的前 7 个值。不知何故,它不起作用......
后来我意识到该块返回一个指向原始数据的指针。如何将块深度复制到特征向量中?
Eigen::MatrixXd A(5,12);
Eigen::VectorXd B(12); B = A.row(0);
Eigen::VectorXd C(7); C = B.head(7);
Run Code Online (Sandbox Code Playgroud)
block、col、row、等块方法head返回原始数据的视图,但运算符=始终执行深复制,因此您可以简单地编写:
VectorXd C = A.row(0).head(7);
Run Code Online (Sandbox Code Playgroud)
这将执行单个深层复制。使用 Eigen 3.4切片 API,您还可以编写:
VectorXd C = A(0,seqN(0,7));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2812 次 |
| 最近记录: |