# findnz

findnz(A)

Return a tuple `(I, J, V)` where `I` and `J` are the row and column indexes of the non-zero values in matrix `A`, and `V` is a vector of the non-zero values.

## Examples

In the Julia programming language, the function `findnz(A)` returns a tuple `(I, J, V)` where `I` and `J` are the row and column indexes of the non-zero values in matrix `A`, and `V` is a vector of the non-zero values.

Example 1: Find non-zero elements in a matrix

``````julia> A = [1 0 0; 0 2 0; 0 0 3];
julia> I, J, V = findnz(A)
([1, 2, 3], [1, 2, 3], [1, 2, 3])``````

In this example, the matrix `A` has non-zero elements at positions `(1, 1)`, `(2, 2)`, and `(3, 3)`. The variables `I`, `J`, and `V` store the row indices, column indices, and non-zero values respectively.

Example 2: Find non-zero elements in a sparse matrix

``````julia> using SparseArrays
julia> A = sparse([1, 2, 3], [2, 1, 3], [4, 5, 6]);
julia> I, J, V = findnz(A)
([1, 2, 3], [2, 1, 3], [4, 5, 6])``````

In this example, the sparse matrix `A` has non-zero elements at positions `(1, 2)`, `(2, 1)`, and `(3, 3)`. The `findnz` function correctly returns the row indices, column indices, and non-zero values.

Mistake example: Trying to find non-zero elements in an empty matrix

``````julia> A = zeros(0, 0);
julia> I, J, V = findnz(A)
ERROR: DimensionMismatch("dimensions must match")``````

In this example, an empty matrix `A` is used with `findnz`. However, since the dimensions of the matrix are empty, it results in a `DimensionMismatch` error. It is important to ensure that the matrix has non-zero elements before using `findnz`.