I've a large `D` Matrix of size MxNxK. Given a binary mask `B` of size MxN, I would like to split the matrix `D` into two submatrices: `D0` and `D1`, in such a way that matrix `D0` has the values of matrix `D` associated with the `0's` in the binary mask. The same is valid for `D1`, but by using the `1's` in the binary mask.
Currently, I'm solving this issue by using loops, but I'm wondering if there's a more efficient way to solve that?

```
mat_zeros = [];
mat_ones = [];

for m=1:M
    for n=1:N

        matval = matrixbig(m,n,:);
        matval = matval(:)'; % mapping matval to a K-dimensional vector

        if (binmask(m,n) == 1)
            mat_ones   = [mat_ones; matval];
        elseif (binmask(m,n) == 0)
            mat_zeros   = [mat_zeros; matval];
        end
    end
end

```

All suggestions are welcomed ;-)