Nonzero matrix elements
Use nonzeros
to return the nonzero elements in a sparse matrix.
Create a 10-by-10 sparse matrix that contains a few nonzero elements. The typical display of sparse matrices shows a list of the nonzero values and their locations.
A = sparse([1 3 2 1],[1 1 2 3],1:4,10,10)
A = (1,1) 1 (3,1) 2 (2,2) 3 (1,3) 4
Find the values of the nonzero elements.
v = nonzeros(A)
v = 4×1
1
2
3
4
Use nonzeros
, nnz
, and find
to locate and count nonzero matrix elements.
Create a 10-by-10 random sparse matrix with 7% density of nonzeros.
A = sprand(10,10,0.07);
Use nonzeros
to find the values of the nonzero elements.
v = nonzeros(A)
v = 7×1
0.9595
0.4218
0.7922
0.8003
0.1419
0.9157
0.6557
Use nnz
to count the number of nonzeros.
n = nnz(A)
n = 7
Use find
to get the indices and values of the nonzeros.
[i,j,v] = find(A)
i = 7×1
10
3
9
1
2
7
10
j = 7×1
2
5
6
10
10
10
10
v = 7×1
0.9595
0.4218
0.7922
0.8003
0.1419
0.9157
0.6557
A
— Input arrayInput array, specified as a vector, matrix, or multidimensional array.
A
can be full or sparse.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
Complex Number Support: Yes
v
— Nonzero elementsNonzero elements, returned as a column vector. v
is returned in
full-storage regardless of whether A
is full or sparse. The elements
in v
are ordered first by column subscript and then by row
subscript.
nonzeros
gives the v
, but not the indices
i
and j
, from [i,j,v] =
find(A)
.
Generally,
length(v) = nnz(A) <= nzmax(A) <= prod(size(A))
This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
You have a modified version of this example. Do you want to open this example with your edits?