:orphan:
# MatReuse
Indicates if matrices obtained from a previous call to `MatCreateSubMatrices()`, `MatCreateSubMatrix()`, `MatConvert()` or several other functions are to be reused to store the new matrix values.
## Synopsis
```
typedef enum {
MAT_INITIAL_MATRIX,
MAT_REUSE_MATRIX,
MAT_IGNORE_MATRIX,
MAT_INPLACE_MATRIX
} MatReuse;
```
## Values
- ***`MAT_INITIAL_MATRIX` -*** create a new matrix
- ***`MAT_REUSE_MATRIX` -*** reuse the matrix created with a previous call that used `MAT_INITIAL_MATRIX`
- ***`MAT_INPLACE_MATRIX` -*** replace the first input matrix with the new matrix (not applicable to all functions)
- ***`MAT_IGNORE_MATRIX` -*** do not create a new matrix or reuse a give matrix, just ignore that matrix argument (not applicable to all functions)
## See Also
[](ch_matrices), `Mat`, `MatCreateSubMatrices()`, `MatCreateSubMatrix()`, `MatDestroyMatrices()`, `MatConvert()`
## Level
beginner
## Location
include/petscmat.h
## Examples
src/ksp/ksp/tutorials/ex27.c
src/ksp/ksp/tutorials/ex29.c
src/ksp/ksp/tutorials/ex34.c
src/ksp/ksp/tutorials/ex43.c
src/ksp/ksp/tutorials/ex49.c
src/ksp/ksp/tutorials/ex59.c
src/ksp/ksp/tutorials/ex64.c
src/ksp/ksp/tutorials/ex65.c
src/ksp/ksp/tutorials/ex6f.F90
src/ksp/ksp/tutorials/ex71.c
src/ksp/ksp/tutorials/ex72.c
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscmat.h)
[Index of all Mat routines](index.md)
[Table of Contents for all manual pages](/manualpages/index.md)
[Index of all manual pages](/manualpages/singleindex.md)