Returns a new matrix consisting of filtered columns of the original matrix
Matrix filterColumns(bool Function(Vector column, int idx) predicate);