В настоящее время я работаю над проектом MATLAB, и я бы хотел повторно реализовать большинство вычислительно-тяжелых частей с использованием С++ и Eigen. Я хотел бы знать, есть ли способ выполнить следующую операцию (синтаксис MATLAB):
B = A(A < 3);
Для тех, кто не знаком с MATLAB, вышеупомянутая команда инициализирует матрицу B, состоящую из ячеек в A, значения которых меньше 3.
Я видел из сообщения на Eigen forum, что можно получить интересующие индексы, используя:
MatrixXi indices = (A.array() < 3).cast<int>();
То, что я хотел бы иметь, это что-то вроде:
MatrixXd B = A(A.array() < 3);
Спасибо.