【发布时间】:2022-07-15 05:09:10
【问题描述】:
我想检索特征数组中的某些元素并将它们作为向量返回。我使用以下代码:
Eigen::ArrayXXi test;
test.resize(5,5);
test.setRandom();
Eigen::Matrix<int, 2, 3> inds;
inds<<0, 2, 3, 2, 3, 1;
auto res = test(inds.row(0), inds.row(1));
std::cout<<\"test: \\n\"<<test <<std::endl;
std::cout<<\"inds: \\n\"<<inds <<std::endl;
std::cout<<\"res: \\n\"<<res <<std::endl;
输出是:
test:
730547559 -649503489 -48539462 893772102 -1038736613
-226810938 -353856438 276748203 291438716 -552146456
607950953 576018668 -290373134 466641602 -779039257
640895091 -477225175 28778235 -769652652 653214605
884005969 115899597 971155939 229713912 -737276042
inds:
0 2 3
2 3 1
res:
-48539462 893772102 -649503489
-290373134 466641602 576018668
28778235 -769652652 -477225175
结果是一个矩阵。我注意到矩阵的对角线是我想要的结果。我可以使用res.diagonal() 来检索向量。但是,我仍然想知道是否可以以更有效的方式做同样的事情。
标签: c++ eigen matrix-indexing