Submatrices and indices using Eigen

c++, eigen, submatrix, vectorization

Solution

There currently is a feature request for selecting sub-matrices by indexing filed at the Eigen BugTracker system. Therefore, I doubt it will be possible that way.

The only workaround I could think of is to copy the data manually. Not very nice though.

Problem

I'm currently working on a MATLAB project and I'd like to re-implement the most computational-heavy parts using C++ and Eigen. I'd like to know if there's a way to perform the following operation (MATLAB syntax): ``` B = A(A < 3); ``` For those who are not familiar with MATLAB, the above-mentioned command initializes a matrix B made of the cells in A whose values are less than 3. I've seen from a post on the Eigen forum that it's possible to obtain the indices of interest by using: ``` MatrixXi indices = (A.array() < 3).cast<int>(); ``` What I'd like to have is something like: ``` MatrixXd B = A(A.array() < 3); ``` Thanks.

Original source