배열 인덱싱
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
을 사용합니다.