:orphan:
# MatCreateSeqAIJFromTriple
Creates an sequential `MATSEQAIJ` matrix using matrix elements (in COO format) provided by the user.
## Synopsis
```
#include "petscmat.h"
PetscErrorCode MatCreateSeqAIJFromTriple(MPI_Comm comm, PetscInt m, PetscInt n, PetscInt i[], PetscInt j[], PetscScalar a[], Mat *mat, PetscInt nz, PetscBool idx)
```
Collective
## Input Parameters
- ***comm -*** must be an MPI communicator of size 1
- ***m -*** number of rows
- ***n -*** number of columns
- ***i -*** row indices
- ***j -*** column indices
- ***a -*** matrix values
- ***nz -*** number of nonzeros
- ***idx -*** if the `i` and `j` indices start with 1 use `PETSC_TRUE` otherwise use `PETSC_FALSE`
## Output Parameter
- ***mat -*** the matrix
## Example
For the following matrix, the input data expected is as shown (using 0 based indexing)
```none
1 0 0
2 0 3
4 5 6
i = {0,1,1,2,2,2}
j = {0,0,2,0,1,2}
v = {1,2,3,4,5,6}
```
## Note
Instead of using this function, users should also consider `MatSetPreallocationCOO()` and `MatSetValuesCOO()`, which allow repeated or remote entries,
and are particularly useful in iterative applications.
## See Also
[](ch_matrices), `Mat`, `MatCreate()`, `MatCreateAIJ()`, `MatCreateSeqAIJ()`, `MatCreateSeqAIJWithArrays()`, `MatMPIAIJSetPreallocationCSR()`, `MatSetValuesCOO()`, `MatSetPreallocationCOO()`
## Level
intermediate
## Location
src/mat/impls/aij/seq/aij.c
## Examples
src/ksp/ksp/tutorials/ex83f.F90
---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/aij/seq/aij.c)
[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)