Eigen3/C++:用 Vector3d 平铺 MatrixXd
Eigen3/C++: Tile a MatrixXd with a Vector3d
'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 ...
其中Nand/or编译时知道方向也有对应的版本...
'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 ...
其中Nand/or编译时知道方向也有对应的版本...