对不起这个主题 - 我没能创造出更好的...
我的意思是:我有一个 2d-Vector a 和一个 3d-Vector b。当我初始化 b 时,b(0,1) 应设置为 a,b(2) 应设置为 1。此代码有效:
const Vector2d a(1,2);
Vector3d b( 0,0,1 );
b.head<2>() = a;
但我更愿意拥有的(除其他外,因为 const
):
const Vector2d a(1,2);
const Vector3d b( a, 1 );
这行不通。有办法实现吗?
最佳答案
如果没有 const 你会这样做:
Vector3d b;
b << a, 1;
如果你真的想让它成为常量,那么你可以这样做:
const Vector3d b = (Vector3d() << a, 1).finished();
关于c++ - 如何按 block 初始化 "Eigen"- 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46934798/