MATLAB Answers

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

3,453 ビュー (過去 30 日間)
Arnab Pal
Arnab Pal 2018 年 2 月 15 日
回答済み: Ujjawal Barnwal 2020 年 6 月 7 日
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 件のコメント

サインインしてコメントする。

採用された回答

Walter Roberson
Walter Roberson 2018 年 2 月 15 日
編集済み: MathWorks Support Team 2020 年 2 月 27 日
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 件のコメント

サインインしてコメントする。

その他の回答 (2 件)

Bhagyesh Shiyani
Bhagyesh Shiyani 2019 年 12 月 5 日
what if i want both 8 positions, any code?

  2 件のコメント

Florian Reinbold
Florian Reinbold 2020 年 1 月 15 日
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 2020 年 1 月 15 日
This will not return value and index, it will return row and column numbers.

サインインしてコメントする。


Ujjawal Barnwal
Ujjawal Barnwal 2020 年 6 月 7 日
a = [7 8 8 2 5 6];
position = find(a==8)

  0 件のコメント

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by