在“ Eigen3 / C ++”中构造MatrixXd
的最优雅方法是什么
来自重复的Vector3d
。也就是说,给定行向量
Eigen::Vector3d V(v00, v01, v02);
目标是找到一个操作
op
Eigen::MatrixXd M = op(V, N);
传送由等于
M
的N
行组成的矩阵V
,即 / 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和/或方向时,其中也有相应的版本...
关于c++ - Eigen3/C++:使用Vector3d平铺MatrixXd,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47176392/