在“ Eigen3 / C ++”中构造MatrixXd的最优雅方法是什么
来自重复的Vector3d。也就是说,给定行向量

     Eigen::Vector3d  V(v00, v01, v02);


目标是找到一个操作op

     Eigen::MatrixXd  M = op(V, N);


传送由等于MN行组成的矩阵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/

10-09 06:01