Find indices and values of nonzero elements

returns
a vector containing the linear
indices of each nonzero element in array `k`

= find(`X`

)`X`

.

If

`X`

is a vector, then`find`

returns a vector with the same orientation as`X`

.If

`X`

is a multidimensional array, then`find`

returns a column vector of the linear indices of the result.If

`X`

contains no nonzero elements or is empty, then`find`

returns an empty array.

To find array elements that meet a condition, use

`find`

in conjunction with a relational expression. For example,`find(X<5)`

returns the linear indices to the elements in`X`

that are less than`5`

.To directly find the elements in

`X`

that satisfy the condition`X<5`

, use`X(X<5)`

. Avoid function calls like`X(find(X<5))`

, which unnecessarily use`find`

on a logical matrix.When you execute

`find`

with a relational operation like`X>1`

, it is important to remember that the result of the relational operation is a logical matrix of ones and zeros. For example, the command`[row,col,v] = find(X>1)`

returns a column vector of logical`1`

(`true`

) values for`v`

.The row and column subscripts,

`row`

and`col`

, are related to the linear indices in`k`

by`k = sub2ind(size(X),row,col)`

.