배열 형태 변경 및 재배열하기
MATLAB®의 함수 대부분은 기존 배열의 요소를 가져와 다른 형태 또는 수열로 배치할 수 있습니다. 이는 후속 계산을 위해 데이터를 전처리하거나 데이터를 분석하는 데 유용할 수 있습니다.
형태 변경하기
reshape
함수는 배열의 크기와 형태를 변경합니다. 예를 들어, 3×4 행렬의 형태를 2×6 행렬로 변경해 보겠습니다.
A = [1 4 7 10; 2 5 8 11; 3 6 9 12]
A = 3×4
1 4 7 10
2 5 8 11
3 6 9 12
B = reshape(A,2,6)
B = 2×6
1 3 5 7 9 11
2 4 6 8 10 12
각 형태의 요소 개수가 같으면 차원 수에 상관없이 어떠한 배열로도 형태를 변경할 수 있습니다. A
의 요소를 사용하여 2×2×3 다차원 배열을 생성합니다.
C = reshape(A,2,2,3)
C = C(:,:,1) = 1 3 2 4 C(:,:,2) = 5 7 6 8 C(:,:,3) = 9 11 10 12
전치 및 뒤집기
선형 대수의 일반적인 작업은 행을 열로, 열을 행으로 변환하는 행렬의 전치를 사용하는 것입니다. 이 작업을 수행하려면 transpose
함수 또는 .'
연산자를 사용하십시오.
3×3 행렬을 만들고 이 행렬의 전치를 계산합니다.
A = magic(3)
A = 3×3
8 1 6
3 5 7
4 9 2
B = A.'
B = 3×3
8 3 4
1 5 9
6 7 2
유사한 연산자 '
는 복소수 행렬의 켤레 전치를 계산합니다. 이 연산은 각 요소의 켤레 복소수를 계산한 후 전치합니다. 2×2 복소수 행렬을 만들고 이 행렬의 켤레 전치를 계산합니다.
A = [1+i 1-i; -i i]
A = 2×2 complex
1.0000 + 1.0000i 1.0000 - 1.0000i
0.0000 - 1.0000i 0.0000 + 1.0000i
B = A'
B = 2×2 complex
1.0000 - 1.0000i 0.0000 + 1.0000i
1.0000 + 1.0000i 0.0000 - 1.0000i
flipud
함수는 행렬의 행을 위에서 아래 방향으로 뒤집고, fliplr
함수는 행렬의 열을 왼쪽에서 오른쪽 방향으로 뒤집습니다.
A = [1 2; 3 4]
A = 2×2
1 2
3 4
B = flipud(A)
B = 2×2
3 4
1 2
C = fliplr(A)
C = 2×2
2 1
4 3
이동 및 회전하기
circshift
함수를 사용하여 배열의 요소를 특정 개수의 위치만큼 이동할 수 있습니다. 예를 들어, 3×4 행렬을 만들고 행렬의 열을 오른쪽으로 2만큼 이동해 보겠습니다. 두 번째 인수 [0 2]
는 circshift
에 행을 0개 자리만큼, 열을 오른쪽으로 2개 자리만큼 이동하도록 지시합니다.
A = [1 2 3 4; 5 6 7 8; 9 10 11 12]
A = 3×4
1 2 3 4
5 6 7 8
9 10 11 12
B = circshift(A,[0 2])
B = 3×4
3 4 1 2
7 8 5 6
11 12 9 10
A
의 행을 위로 1만큼 이동하고 열은 제자리에 두려면 두 번째 인수를 [-1 0]
으로 지정하십시오.
C = circshift(A,[-1 0])
C = 3×4
5 6 7 8
9 10 11 12
1 2 3 4
rot90
함수는 행렬을 시계 반대 방향으로 90도 회전시킬 수 있습니다.
A = [1 2; 3 4]
A = 2×2
1 2
3 4
B = rot90(A)
B = 2×2
2 4
1 3
두 번째 인수로 회전 횟수를 지정하여 행렬을 세 번 더 회전시키면 결국 원래 행렬 A
가 됩니다.
C = rot90(B,3)
C = 2×2
1 2
3 4
정렬하기
배열의 데이터를 정렬하는 것 역시 유용한 방법이기 때문에 MATLAB에서는 여러 가지 정렬 방법을 제공합니다. 예를 들어, sort
함수는 행렬의 각 행 또는 열에 있는 요소를 독립적으로 오름차순 또는 내림차순으로 정렬합니다. 행렬 A
를 만들고 A
의 각 열을 오름차순으로 정렬합니다.
A = magic(4)
A = 4×4
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
B = sort(A)
B = 4×4
4 2 3 1
5 7 6 8
9 11 10 12
16 14 15 13
각 행을 내림차순으로 정렬합니다. 두 번째 인수 값 2
는 행을 기준으로 정렬하도록 지정합니다.
C = sort(A,2,'descend')
C = 4×4
16 13 3 2
11 10 8 5
12 9 7 6
15 14 4 1
전체 행 또는 전체 열 단위로 정렬하려면 sortrows
함수를 사용하십시오. 예를 들어, A
의 첫 번째 열의 요소를 기준으로 행을 오름차순으로 정렬해 보겠습니다. 행의 위치는 변경되지만 각 행에 있는 요소의 순서는 유지됩니다.
D = sortrows(A)
D = 4×4
4 14 15 1
5 11 10 8
9 7 6 12
16 2 3 13