Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

sort

배열 요소 정렬

설명

예제

B = sort(A)A의 요소를 오름차순으로 정렬합니다.

  • A가 벡터인 경우 sort(A)는 벡터 요소를 정렬합니다.

  • A가 행렬인 경우 sort(A)A의 열을 벡터로 취급하고 각 열을 정렬합니다.

  • A가 다차원 배열인 경우 sort(A)는 크기가 1이 아닌 첫 번째 배열 차원을 따라 동작을 수행하며, 요소를 벡터로 취급합니다.

예제

B = sort(A,dim)은 차원 dim을 따라 정렬된 A의 요소를 반환합니다. 예를 들어, A가 행렬인 경우 sort(A,2)는 각 행의 요소를 정렬합니다.

예제

B = sort(___,direction)은 위에 열거된 구문에 direction으로 순서를 지정하여 정렬된 A의 요소를 반환합니다. 'ascend'는 오름차순(디폴트 값)을, 'descend'는 내림차순을 나타냅니다.

예제

B = sort(___,Name,Value)는 정렬을 위한 추가 파라미터를 지정합니다. 예를 들어, sort(A,'ComparisonMethod','abs')는 크기를 기준으로 A의 요소를 정렬합니다.

예제

[B,I] = sort(___)는 위에 열거된 구문에 인덱스 벡터 모음을 추가로 반환합니다. IA와 크기가 동일하며, 정렬된 차원을 따라 A의 요소가 B에 어떻게 배열되었는지 설명합니다. 예를 들어, A가 벡터이면 B = A(I)입니다.

예제

모두 축소

행 벡터를 만든 다음, 이 벡터의 요소를 오름차순으로 정렬합니다.

A = [9 0 -7 5 3 8 -10 4 2];
B = sort(A)
B = 1×9

   -10    -7     0     2     3     4     5     8     9

행렬을 만든 다음, 이 행렬의 각 행을 오름차순으로 정렬합니다.

A = [3 6 5; 7 -2 4; 1 0 -9]
A = 3×3

     3     6     5
     7    -2     4
     1     0    -9

B = sort(A,2)
B = 3×3

     3     5     6
    -2     4     7
    -9     0     1

행렬을 만든 다음, 이 행렬의 열을 내림차순으로 정렬합니다.

A = [10 -12 4 8; 6 -9 8 0; 2 3 11 -2; 1 1 9 3]
A = 4×4

    10   -12     4     8
     6    -9     8     0
     2     3    11    -2
     1     1     9     3

B = sort(A,'descend')
B = 4×4

    10     3    11     8
     6     1     9     3
     2    -9     8     0
     1   -12     4    -2

R2017a부터는 큰따옴표를 사용하여 string형 배열을 만들고 sort 함수를 사용하여 이를 정렬할 수 있습니다. string형 배열의 각 열에 있는 문자열을 Unicode® 사전순으로 정렬합니다.

A = ["Santos","Burns"; ...
     "Jones","Morita"; ...
     "Petrov","Adams"];
B = sort(A)
B = 3x2 string
    "Jones"     "Adams" 
    "Petrov"    "Burns" 
    "Santos"    "Morita"

각 행에 있는 문자열을 정렬합니다.

B = sort(A,2)
B = 3x2 string
    "Burns"    "Santos"
    "Jones"    "Morita"
    "Adams"    "Petrov"

datetime형 값으로 구성된 배열을 만든 다음, 이러한 값을 오름차순으로, 즉 가장 이른 달력 날짜부터 가장 늦은 날짜순으로 정렬합니다.

ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
A = 3x1 datetime
   2012-12-22
   2063-04-05
   1992-01-12

[B,I] = sort(A)
B = 3x1 datetime
   1992-01-12
   2012-12-22
   2063-04-05

I = 3×1

     3
     1
     2

B는 정렬된 날짜를 나열하고 IA의 대응하는 인덱스를 포함합니다.

인덱스 배열 I를 사용하여 원래 배열에서 정렬된 요소에 직접 액세스합니다.

A(I)
ans = 3x1 datetime
   1992-01-12
   2012-12-22
   2063-04-05

대응하는 요소에 관련 데이터가 포함된 두 개의 행 벡터를 만듭니다.

X = [3 6 4 2 1 5];
Y = ["yellow" "purple" "green" "orange" "red" "blue"];

먼저 벡터 X를 정렬한 다음 벡터 YX와 동일한 순서로 정렬합니다.

[Xsorted,I] = sort(X)
Xsorted = 1×6

     1     2     3     4     5     6

I = 1×6

     5     4     1     3     6     2

Ysorted = Y(I)
Ysorted = 1x6 string
    "red"    "orange"    "yellow"    "green"    "blue"    "purple"

2×2×2 배열을 만든 다음, 이 배열의 요소를 3번째 차원을 따라 오름차순으로 정렬합니다.

A(:,:,1) = [2 3; 1 6];
A(:,:,2) = [-1 9; 0 12];
A
A = 
A(:,:,1) =

     2     3
     1     6


A(:,:,2) =

    -1     9
     0    12

B = sort(A,3)
B = 
B(:,:,1) =

    -1     3
     0     6


B(:,:,2) =

     2     9
     1    12

A를 열로 나타내는 A(:)을 사용하여 A의 모든 요소를 정렬합니다.

B = sort(A(:))
B = 8×1

    -1
     0
     1
     2
     3
     6
     9
    12

실수부를 기준으로 복소수 벡터의 요소를 정렬합니다. 기본적으로 sort 함수는 복소수 값을 크기를 기준으로 정렬하고 동일한 값 간의 우선 순위는 위상각으로 결정합니다. 'ComparisonMethod'의 값을 'real'로 지정하여 복소수 값을 실수부를 기준으로 정렬합니다. 요소의 실수부가 같으면 sort는 허수부에 따라 우선 순위를 결정합니다.

A = [1+2i 3+1i 1i 0 -1i];
B = sort(A,'ComparisonMethod','real')
B = 1×5 complex

   0.0000 - 1.0000i   0.0000 + 0.0000i   0.0000 + 1.0000i   1.0000 + 2.0000i   3.0000 + 1.0000i

입력 인수

모두 축소

입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.

  • A가 스칼라이면 sort(A)A를 반환합니다.

  • A가 복소수인 경우, 기본적으로 sort는 크기별로 요소를 정렬합니다. 두 개 이상의 요소가 같은 크기를 같는 경우, 요소는 구간 (−π, π]의 위상각에 따라 정렬됩니다.

  • A가 문자형 벡터로 구성된 셀형 배열이거나 string형 배열이면 sort(A)는 UTF-16 문자 인코딩 체계의 코드 순서에 따라 요소를 정렬합니다. 정렬은 대/소문자를 구분합니다. 문자형 배열 및 string형 배열의 정렬에 대한 자세한 내용은 문자형 배열과 string형 배열의 정렬 순서 항목을 참조하십시오.

  • A가 string형 배열이면 sort는 배열의 요소를 다시 정렬하지만 string형 내의 문자는 다시 정렬하지 않습니다.

  • A가 categorical형 배열이면 정렬 순서는 categories(A)에서 반환되는 범주 순서를 기반으로 합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | categorical | datetime | duration
복소수 지원 여부:

연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 1이 아닌 첫 번째 배열 차원이 됩니다.

  • 행렬 A가 있다고 가정해 보겠습니다. sort(A,1)A의 열에 있는 요소를 정렬합니다.

    sort(A,1) column-wise operation

  • sort(A,2)A의 행에 있는 요소를 정렬합니다.

    sort(A,2) row-wise operation

dimndims(A)보다 큰 경우 sortA를 반환합니다. A가 셀형 배열인 경우에는 dim이 지원되지 않습니다. 즉, sort는 크기가 1이 아닌 첫 번째 배열 차원을 따라 동작합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

정렬 방향으로, 'ascend' 또는 'descend'로 지정됩니다. A가 셀형 배열인 경우에는 direction이 지원되지 않습니다. 즉, sort는 오름차순으로만 정렬합니다.

이름-값 인수

선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN으로 지정합니다. 여기서 Name은 인수 이름이고 Value는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.

R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name을 따옴표로 묶으십시오.

예: sort(A,'MissingPlacement','last')

누락값(NaN, NaT, <undefined>, missing)의 배치로, 'MissingPlacement'와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'auto' — 누락된 요소가 오름차순의 경우 마지막에, 내림차순의 경우 처음에 배치됩니다.

  • 'first' — 누락된 요소가 처음에 배치됩니다.

  • 'last' — 누락된 요소가 마지막에 배치됩니다.

요소 비교 방법으로, 'ComparisonMethod'와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.

  • 'auto'A가 실수인 경우 real(A)를 기준으로 A를 정렬하고, A가 복소수인 경우 abs(A)를 기준으로 정렬합니다.

  • 'real'A가 실수이거나 복소수인 경우 real(A)를 기준으로 A를 정렬합니다. A에 실수부가 동일한 요소가 있는 경우, imag(A)를 사용하여 우선 순위를 결정합니다.

  • 'abs'A가 실수이거나 복소수인 경우 abs(A)를 기준으로 A를 정렬합니다. A에 크기가 동일한 요소가 있는 경우, 구간 (-π,π]에서의 angle(A)를 사용하여 우선 순위를 결정합니다.

출력 인수

모두 축소

정렬된 배열로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. BA와 크기와 유형이 동일합니다.

데이터형: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | categorical | datetime | duration

정렬 인덱스로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. IA와 크기가 동일합니다. 인덱스 벡터는 sort가 동작하는 동일한 차원을 따라 배열됩니다. 예를 들어, A가 2×3 행렬인 경우 [B,I] = sort(A,2)A의 각 행의 요소를 정렬합니다. 출력값 IA의 각 행의 요소들이 어떻게 재배열되었는지 기술하는 1×3 행 인덱스 벡터들의 모음입니다.

sort 함수는 안정적인 정렬 알고리즘을 사용합니다. 따라서 입력값이 반복 값을 포함하는 경우 정렬 인덱스는 정렬 방향과 관계없이 입력값의 원래 순서를 유지합니다. 예를 들어, A = [1 2 1 2]이면 [Ba,Ia] = sort(A,'ascend')는 정렬 인덱스 Ia = [1 3 2 4]를 반환하고 [Bd,Id] = sort(A,'descend')는 정렬 인덱스 Id = [2 4 1 3]을 반환합니다.

세부 정보

모두 축소

문자형 배열과 string형 배열의 정렬 순서

MATLAB®은 UTF-16 문자 인코딩 체계를 사용하여 문자를 Unicode®로 저장합니다. 문자형 배열과 string형 배열은 UTF-16 코드 포인트 순서에 따라 정렬됩니다. ASCII 문자에도 해당되는 문자의 경우 이 순서에 따라 대문자가 소문자 앞에 옵니다. 숫자와 일부 문장 부호도 문자 앞에 옵니다.

  • sortrows 함수는 행렬 또는 테이블 입력값의 여러 열에서 2차 정렬할 수 있도록 추가적인 유연성을 제공합니다.

  • sort 함수와 관계 연산자는 복소수에 서로 다른 순서를 사용합니다. 자세한 내용은 관계 연산 항목을 참조하십시오.

확장 기능

버전 내역

R2006a 이전에 개발됨