본문 바로가기
MATLAB 코딩/기초

[matlab 공부하자] 5. find 함수 (기본)

by bigpicture 2019. 7. 1.
반응형

5. find 함수 (기본) 




find 함수는 특정한 조건을 걸어주면 해당되는 행과 열을 찾아주는 함수입니다. 

예를 들어볼게요.


>> a=[0 2 1 5 3 0 2 4 0]


a =


     0     2     1     5     3     0     2     4     0


>> find(a)


ans =


     2     3     4     5     7     8


find(a)라는 함수를 썼는데 뭘 찾았죠?

0 이 아닌 열을 찾았습니다. 2,3,4,5,7,8 열이 nonzero 값입니다. 

디폴트가 뭔지 아시겠죠? 그냥 find 함수를 쓰면 0이 아닌 열을 찾아줍니다. 열만 찾아주는건 아니겠죠? 아래 예시를 보시죠


>> b = [1; 2; 0; 0; 1; 3; 0; 3]


b =


     1

     2

     0

     0

     1

     3

     0

     3


>> find(b)


ans =


     1

     2

     5

     6

     8


이번에는 0 이 아닌 행을 찾아줍니다. ans가 세로로 표시되구요. 그렇다면 행과열이 모두 1보다 큰 행렬의 경우는 어떨지 봅시다. 


>> c=[1 3 0;0 0 1;2 5 1;2 0 3]


c =


     1     3     0

     0     0     1

     2     5     1

     2     0     3


>> find(c)


ans =


     1

     3

     4

     5

     7

    10

    11

    12


흠..1열부터 아래로 내려가면서 0이 아닌 경우를 찾아주네요. 예를들어 7이라고 하면 3행3열이 되네요. 몇행몇열인지를 또 계산해주어야 하는데. 한번에 알 수 있는 방법이 있습니다. 아래처럼 해봅시다.


>> [row col]=find(c)


row =


     1

     3

     4

     1

     3

     2

     3

     4



col =


     1

     1

     1

     2

     2

     3

     3

     3


0이 아닌 행과 열을 보여줍니다. 순서대로 1행1열, 3행1열, 4행1열....이렇게 읽어주시면 됩니다. 

반응형

댓글