Matrix submatrix(int i1, int j1, int i2, int j2) { return Matrix.fromRows(this .rows .sublist(i1, i2) .map<Vector>((Vector row) => row.subvector(j1, j2)) .toList()); }