Main Content

배열 인덱싱

MATLAB®의 모든 변수는 많은 수를 포함할 수 있는 배열입니다. 선택한 배열의 요소에 액세스하기 위해서는 인덱싱을 사용합니다.

A라는 4×4 행렬을 예로 들어 보겠습니다.

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]
A = 4×4

     1     2     3     4
     5     6     7     8
     9    10    11    12
    13    14    15    16

배열의 특정 요소를 참조하는 방법에는 두 가지가 있습니다. 가장 일반적인 방법은 다음과 같이 행 첨자와 열 첨자를 지정하는 것입니다.

A(4,2)
ans = 14

자주 쓰이지는 않지만 때로 유용한 방법으로, 단일 첨자를 사용해 열을 순서대로 아래쪽으로 세어 나가는 방법도 있습니다.

A(8)
ans = 14

단일 첨자를 사용하여 배열의 특정 요소를 참조하는 것을 선형 인덱싱(Linear Indexing)이라고 합니다.

대입문 우변에서 배열의 범위를 벗어난 요소를 참조하려고 하면 MATLAB에서 오류가 발생합니다.

test = A(4,5)

Index in position 2 exceeds array bounds (must not exceed 4).

하지만 대입문 좌변에서는 현재 차원을 벗어난 요소를 지정할 수 있습니다. 그러면 새로운 요소를 수용할 수 있도록 배열의 크기가 늘어납니다.

A(4,5) = 17
A = 4×5

     1     2     3     4     0
     5     6     7     8     0
     9    10    11    12     0
    13    14    15    16    17

배열의 요소를 여러 개 참조하려면 콜론 연산자를 사용하십시오. 콜론 연산자를 사용하면 start:end 형식으로 범위를 지정할 수 있습니다. 예를 들어, A의 두 번째 열에 위치한 처음 세 행의 요소를 나열해 보겠습니다.

A(1:3,2)
ans = 3×1

     2
     6
    10

start 값과 end 값을 지정하지 않고 콜론만 사용하여 해당 차원의 모든 요소를 지정할 수 있습니다. 예를 들어, A의 세 번째 행에 있는 모든 열을 선택해 보겠습니다.

A(3,:)
ans = 1×5

     9    10    11    12     0

또한 콜론 연산자를 사용하면 좀 더 일반적인 형식인 start:step:end를 사용하여, 균일한 간격의 값으로 구성된 벡터를 만들 수 있습니다.

B = 0:10:100
B = 1×11

     0    10    20    30    40    50    60    70    80    90   100

start:end처럼 가운데에 있는 step을 생략하면 MATLAB에서는 디폴트 step 값인 1을 사용합니다.