sort
배열 요소 정렬
설명
는 정렬을 위한 추가 파라미터를 지정합니다. 예를 들어, B
= sort(___,Name,Value
)sort(A,'ComparisonMethod','abs')
는 크기를 기준으로 A
의 요소를 정렬합니다.
예제
행 벡터를 만든 다음, 이 벡터의 요소를 오름차순으로 정렬합니다.
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 = 3×2 string
"Jones" "Adams"
"Petrov" "Burns"
"Santos" "Morita"
각 행에 있는 문자열을 정렬합니다.
B = sort(A,2)
B = 3×2 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 = 3×1 datetime
2012-12-22
2063-04-05
1992-01-12
[B,I] = sort(A)
B = 3×1 datetime
1992-01-12
2012-12-22
2063-04-05
I = 3×1
3
1
2
B
는 정렬된 날짜를 나열하고 I
는 A
의 대응하는 인덱스를 포함합니다.
인덱스 배열 I
를 사용하여 원래 배열에서 정렬된 요소에 직접 액세스합니다.
A(I)
ans = 3×1 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
를 정렬한 다음 벡터 Y
를 X
와 동일한 순서로 정렬합니다.
[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 = 1×6 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,2)
는A
의 행에 있는 요소를 정렬합니다.
dim
이 ndims(A)
보다 큰 경우 sort
는 A
를 반환합니다. 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)
를 사용하여 우선 순위를 결정합니다.
출력 인수
정렬된 배열로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. B
는 A
와 크기와 유형이 동일합니다.
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| categorical
| datetime
| duration
정렬 인덱스로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. I
는 A
와 크기가 동일합니다. 인덱스 벡터는 sort
가 동작하는 동일한 차원을 따라 배열됩니다. 예를 들어, A
가 2×3 행렬인 경우 [B,I] = sort(A,2)
는 A
의 각 행의 요소를 정렬합니다. 출력값 I
는 A
의 각 행의 요소들이 어떻게 재배열되었는지 기술하는 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]
을 반환합니다.
세부 정보
MATLAB®은 UTF-16 문자 인코딩 체계를 사용하여 문자를 Unicode®로 저장합니다. 문자형 배열과 string형 배열은 UTF-16 코드 포인트 순서에 따라 정렬됩니다. ASCII 문자에도 해당되는 문자의 경우 이 순서에 따라 대문자가 소문자 앞에 옵니다. 숫자와 일부 문장 부호도 문자 앞에 옵니다.
팁
sortrows
함수는 행렬 또는 테이블 입력값의 여러 열에서 2차 정렬할 수 있도록 추가적인 유연성을 제공합니다.sort
함수와 관계 연산자는 복소수에 서로 다른 순서를 사용합니다. 자세한 내용은 관계 연산 항목을 참조하십시오.
확장 기능
이 함수는 tall형 배열을 지원하지만 다음과 같은 제한 사항이 있습니다.
정렬할 차원을 지정해야 합니다(예:
sort(X,dim)
).tall 차원의 정렬은 열 벡터에 대해서만 지원됩니다(예:
sort(X,1)
).
자세한 내용은 tall형 배열 항목을 참조하십시오.
사용법 관련 참고 및 제한 사항:
입력 인수
A
에 대해 다음이 적용됩니다.string형 입력 배열은 지원되지 않습니다.
입력 배열이 문자형 벡터로 구성된 셀형 배열이고 가변 크기 조정이 비활성화된 경우 모든 문자형 벡터 요소는 길이가 동일해야 합니다.
생성된 코드에서 입력 배열은 모든 요소의 허수부 값이 0이더라도 복소수로 유지됩니다. 이러한 경우, 생성된 코드의 결과는 MATLAB에서 생성된 결과와 다를 수 있습니다. Code Generation for Complex Data with Zero-Valued Imaginary Parts (MATLAB Coder) 항목을 참조하십시오.
direction
인수가 사용될 경우, 이 인수는 코드 생성 시 상수여야 합니다.
C/C++ 코드 생성 섹션의 사용법 관련 참고 및 제한 사항을 참조하십시오. GPU 코드 생성에도 동일한 제한 사항이 적용됩니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
sort
함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray
(Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
사용법 관련 참고 및 제한 사항:
table형, timetable형, datetime형 입력값은 지원되지 않습니다.
자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)