MATLAB Answers

How to find the position of a number in an array?

6,538 views (last 30 days)
If I have a vector, a = [7 8 8 2 5 6], how do I compute the positions of the value 8?
I expect 2 and 3 or (1,2) and (1,3).

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 15 Feb 2018
Edited: MathWorks Support Team on 27 Feb 2020
You can use the “find” function to return the positions corresponding to an array element value. For example:
a = [7 8 8 2 5 6];
linearIndices = find(a==8)
linearIndices =
2 3
To get the row and column indices separately, use:
[row,col] = find(a==8)
row =
1 1
col =
2 3
If you only need the position of one occurrence, you could use the syntax “find(a==8,1)”. You can also specify a direction if you specifically want the first or last occurrence, such as “find(a==8,1,’first’). For more information on these options, see find.

  0 Comments

Sign in to comment.

More Answers (2)

Bhagyesh Shiyani
Bhagyesh Shiyani on 5 Dec 2019
what if i want both 8 positions, any code?

  2 Comments

Florian Reinbold
Florian Reinbold on 15 Jan 2020
Hi Bhagyesh
i would suggest this one:
[val, idx] = find(a==8);
It seems to make a great job! :)
Cheers
Florian
Walter Roberson
Walter Roberson on 15 Jan 2020
This will not return value and index, it will return row and column numbers.

Sign in to comment.


Ujjawal Barnwal
Ujjawal Barnwal on 7 Jun 2020
a = [7 8 8 2 5 6];
position = find(a==8)

  0 Comments

Sign in to comment.

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!