# MatUpdateMPIAIJWithArrays
updates a `MATMPIAIJ` matrix using arrays that contain in standard CSR format for the local rows. Only the numerical values are updated the other arrays must be identical to what was passed from `MatCreateMPIAIJWithArrays()` 
## Synopsis
```
#include "petscmat.h" 
PetscErrorCode MatUpdateMPIAIJWithArrays(Mat mat, PetscInt m, PetscInt n, PetscInt M, PetscInt N, const PetscInt Ii[], const PetscInt J[], const PetscScalar v[])
```
Deprecated: Use `MatUpdateMPIAIJWithArray()`

Collective


## Input Parameters

- ***mat -*** the matrix
- ***m -*** number of local rows (Cannot be `PETSC_DECIDE`)
- ***n -*** This value should be the same as the local size used in creating the
x vector for the matrix-vector product y = Ax. (or `PETSC_DECIDE` to have
calculated if N is given) For square matrices n is almost always m.
- ***M -*** number of global rows (or `PETSC_DETERMINE` to have calculated if m is given)
- ***N -*** number of global columns (or `PETSC_DETERMINE` to have calculated if n is given)
- ***Ii -*** row indices; that is Ii[0] = 0, Ii[row] = Ii[row-1] + number of elements in that row of the matrix
- ***J -*** column indices
- ***v -*** matrix values





## See Also
 `MATMPIAIJ`, `MatCreate()`, `MatCreateSeqAIJ()`, `MatSetValues()`, `MatMPIAIJSetPreallocation()`, `MatMPIAIJSetPreallocationCSR()`,
`MATMPIAIJ`, `MatCreateAIJ()`, `MatCreateMPIAIJWithSplitArrays()`, `MatUpdateMPIAIJWithArrays()`, `MatUpdateMPIAIJWithArray()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/impls/aij/mpi/mpiaij.c.html#MatUpdateMPIAIJWithArrays">src/mat/impls/aij/mpi/mpiaij.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/aij/mpi/mpiaij.c)


[Index of all Mat routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
