'Eigen3/C++'中构造MatrixXd
的最优雅的方式是什么 从重复Vector3d
.也就是说,给定一个行向量
Eigen::Vector3d V(v00, v01, v02);
目标是找到一个操作op
以便
Eigen::MatrixXd M = op(V, N);
提供一个矩阵M
,该矩阵由等于 V
的 N
行组成,即
/ v00 v01 v02
| v00 v01 v02 |
M = | ... |
| |
v00 v01 v02 /
类似于tile
在numpy
中可以实现的目标。
矢量和密集表达式可以复制:
V.rowwise().replicate(N).transpose() // or
V.transpose().colwise().replicate(N) // or
V.transpose().replicate(N,1) // or ...
其中也有相应的版本,当 N 和/或方向在编译时已知时......