Matrix slice(int i, int j) { final List<Vector> newRows = List<Vector>.from(this.rows); newRows.removeAt(i); return Matrix.fromRows( newRows.map<Vector>((Vector row) => row.copy().remove(j)).toList()); }