Number of nonzero matrix elements
Create an identity matrix and determine the number of nonzeros it contains.
X = eye(4)
X = 4×4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
N = nnz(X)
N = 4
Use nnz
in conjunction with a relational operator to determine how many matrix elements meet a condition. Since relational operators produce logical matrices of 1s and 0s, the nnz
function counts the 1s where the condition is true.
Create a matrix and determine how many elements are greater than 10.
X = magic(5)
X = 5×5
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
nnz(X>10)
ans = 15
The density of a matrix is the ratio of nonzeros to the total number of elements, nnz(X)/numel(X)
.
Create a sparse matrix representing the finite difference Laplacian on an L-shaped domain and calculate its density.
X = delsq(numgrid('L',20));
spy(X)
d = nnz(X)/numel(X)
d = 0.0194
The result indicates that only about 2% of the elements in the matrix are nonzero.
X
— Input matrixInput matrix.
Data Types: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| duration
| calendarDuration
Complex Number Support: Yes
This function fully supports tall arrays. For more information, see Tall Arrays.
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?