Convert Index values from "find" function into coordinates.

조회 수: 22 (최근 30일)
Sean Farrell
Sean Farrell 2017년 1월 28일
댓글: Jos (10584) 2018년 2월 23일
Hello! I am using the find function in my code. If I want to find where all the 2's are in a matrix, suppose, this function will spit out the indices of all the 2 values, but it does so in an interesting way:
a =
1 1 2 1
1 1 1 1
1 1 2 1
1 2 1 1
Now, if I implement the function, find(a==2), I get:
ans =
8
9
11
Notice how it counts down each row until it reaches a 2. I would like a coordinate instead; I would like a (row,column) coordinate. Any ideas on how I can do this using the find function?
Much appreciated! Sean

답변 (1개)

Jan
Jan 2017년 1월 28일
편집: Jan 2017년 1월 28일
When you have a question concerning a specific command, reading the corresponding docs helps. See doc find :
[row, col] = find(a == 2)
:-)
  댓글 수: 5
Stephen23
Stephen23 2018년 2월 23일
편집: Stephen23 2018년 2월 23일
@Daniel Garside: use ind2sub:
[R,C,P,...] = ind2sub(size(A),find(A==2))
Jos (10584)
Jos (10584) 2018년 2월 23일
And without specifying the number of dimensions:
[subI{1:ndims(A)}] = ind2sub(size(A), find(A==2))

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Matrices and Arrays에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by