獨斷論

배열array의 원소element 참조 (Matlab 사용법 2) 본문

과학과 기술/Matlab

배열array의 원소element 참조 (Matlab 사용법 2)

부르칸 2015. 3. 18. 01:23

배열array의 원소element 참조 (Matlab 사용설명서 2)

앞서 만든 배열이나 행렬의 원소를 참조 또는 인덱싱indexing하는 방법에 대해서 알아보기로 하자.

우선 아래와 같이 4x4 행렬을 만든다.

>> A = magic(4);
>> A
A =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1


위 행렬에서 4행 3열을 알아내기 위해서는 어떻게 할까?

답은 간다.

>> A(4,3)
ans =
    15


위 행렬의 크기를 잘 몰라서 4x4 범위 밖에 값을 대입하면 어떤 결과를 가져올까?

>> A(4,5) = 7
A =
    16     2     3    13     0
     5    11    10     8     0
     9     7     6    12     0
     4    14    15     1     7


에러 처리를 하지 않고 5번째에 열을 하나 더 더하고 (4,5)에 7을 대입하고 나머지는 0을 대입하였다.

에러처리 하지 않는 것이 이상해보이지만 행렬의 크기를 변화시킬때 아주 유용하게 쓰일수 있다.


만약 행렬 A의 크기를 6x4로 바꾸고자한다면 아래와 같은 편법을 쓸수 있다. 

>> B = magic(4)
B =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

>> B(6,4) = 0
B =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
     0     0     0     0
     0     0     0     0


행렬의 일정 범위를 참조

행렬의 원소 한개를 참조하는 방법은 쉬운데, 이제 행렬에서 어떤 범위의 원소들을 참조하는 방법을 알아보도록하자.

예를들어 앞에서 만들었던 행렬 A의 2행의 4번째 열까지 참조하고자 한다면 아래와 같이 수행한다. 

>> A(2, 1:4)
ans =
     5    11    10     8

반대로 2번째 열의 1에서 4번째 행까지 참조하고자 한다면 다음과 같이 수행한다.

>> A(1:4, 2)
ans =
     2
    11
     7
    14

모든 행이나 모든 열의 원소를 참조하고자 한다면 다음과 같이 수행한다.

>> A(:, 2)
ans =
     2
    11
     7
    14

>> A(2, :)
ans =
     5    11    10     8     0

또한 space vector를 만들려면 아래와 같이 콜론을 이용한다. 시작점:간격:끝점의 형식이다.

>> lsp = 0:10:100
lsp =
     0    10    20    30    40    50    60    70    80    90   100



Comments