是否可以像在Matlab中一样在Eigen中屏蔽数组?

就像是

ArrayXd arrayA = ArrayXd::Random(10, 5);
ArrayXi mask = ArrayXi::Zero(arrayA.rows(), arrayA.cols());
mask = arrayA > 5;
ArrayXd arrayB = arrayA(mask)

其中arrayB是一个行 vector ,仅包含arrayA> 5的所有元素

我可以在2011年以后找到类似的请求,但找不到任何更新的答案(https://forum.kde.org/viewtopic.php?f=74&t=98382https://forum.kde.org/viewtopic.php?f=74&t=98093https://forum.kde.org/viewtopic.php?f=74&t=97652)

最佳答案

Quick Reference

(R.array() < s).select(P,Q);  // (R < s ? P : Q)

因此,在您的情况下
(arrayA > 5).select(mask, arrayA)

10-06 07:51