이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
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
string형 배열 정렬하기
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
형 배열 정렬 및 인덱싱하기
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
는 정렬된 날짜를 나열하고 I
는 A
의 대응하는 인덱스를 포함합니다.
인덱스 배열 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
를 정렬한 다음 벡터 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 = 1x6 string
"red" "orange" "yellow" "green" "blue" "purple"
3차원 배열 정렬
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
— 입력 배열
벡터 | 행렬 | 다차원 배열
입력 배열로, 벡터, 행렬, 다차원 배열 중 하나로 지정됩니다.
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
복소수 지원 여부: 예
dim
— 연산을 수행할 차원
양의 정수 스칼라
연산을 수행할 차원으로, 양의 정수 스칼라로 지정됩니다. 값이 지정되지 않은 경우 디폴트 값은 크기가 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
direction
— 정렬 방향
'ascend'
(디폴트 값) | 'descend'
정렬 방향으로, 'ascend'
또는 'descend'
로 지정됩니다. A
가 셀형 배열인 경우에는 direction
이 지원되지 않습니다. 즉, sort
는 오름차순으로만 정렬합니다.
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: sort(A,'MissingPlacement','last')
MissingPlacement
— 누락값의 배치
'auto'
(디폴트 값) | 'first'
| 'last'
누락값(NaN
, NaT
, <undefined>
, missing
)의 배치로, 'MissingPlacement'
와 함께 다음 중 하나가 쉼표로 구분되어 지정됩니다.
'auto'
— 누락된 요소가 오름차순의 경우 마지막에, 내림차순의 경우 처음에 배치됩니다.'first'
— 누락된 요소가 처음에 배치됩니다.'last'
— 누락된 요소가 마지막에 배치됩니다.
ComparisonMethod
— 요소 비교 방법
'auto'
(디폴트 값) | 'real'
| 'abs'
요소 비교 방법으로, '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
— 정렬된 배열
벡터 | 행렬 | 다차원 배열
정렬된 배열로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. B
는 A
와 크기와 유형이 동일합니다.
데이터형: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| categorical
| datetime
| duration
I
— 정렬 인덱스
벡터 | 행렬 | 다차원 배열
정렬 인덱스로, 벡터, 행렬 또는 다차원 배열로 반환됩니다. 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]
을 반환합니다.
세부 정보
문자형 배열과 string형 배열의 정렬 순서
MATLAB®은 UTF-16 문자 인코딩 체계를 사용하여 문자를 Unicode®로 저장합니다. 문자형 배열과 string형 배열은 UTF-16 코드 포인트 순서에 따라 정렬됩니다. ASCII 문자에도 해당되는 문자의 경우 이 순서에 따라 대문자가 소문자 앞에 옵니다. 숫자와 일부 문장 부호도 문자 앞에 옵니다.
팁
sortrows
함수는 행렬 또는 테이블 입력값의 여러 열에서 2차 정렬할 수 있도록 추가적인 유연성을 제공합니다.sort
함수와 관계 연산자는 복소수에 서로 다른 순서를 사용합니다. 자세한 내용은 관계 연산 항목을 참조하십시오.
확장 기능
tall형 배열
메모리에 담을 수 없을 정도로 많은 행을 가진 배열을 계산할 수 있습니다.
이 함수는 tall형 배열을 지원하지만 다음과 같은 제한 사항이 있습니다.
정렬할 차원을 지정해야 합니다(예:
sort(X,dim)
).tall 차원의 정렬은 열 벡터에 대해서만 지원됩니다(예:
sort(X,1)
).
자세한 내용은 tall형 배열 항목을 참조하십시오.
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
사용법 관련 참고 및 제한 사항:
첫 번째 입력 인수는 셀형 배열일 수 없습니다.
A
가 허수부가 모두 0인 복소수인 경우 MATLAB은sort(A)
를 호출하기 전에A
를real(A)
로 변환할 수 있습니다. 이 경우 MATLAB은real(A)
를 기준으로A
를 정렬하지만, 생성된 코드는abs(A)
를 기준으로A
를 정렬합니다. 생성된 코드가 MATLAB과 일치하도록 하려면sort(real(A))
또는sort(A,'ComparisonMethod','real')
을 사용하십시오. Code Generation for Complex Data with Zero-Valued Imaginary Parts (MATLAB Coder) 항목을 참조하십시오.dim
을 제공할 경우 그 값은 상수여야 합니다.가변 크기 입력값과 관련된 제한 사항을 보려면 Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder) 항목을 참조하십시오.
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
GPU 배열
Parallel Computing Toolbox™를 사용해 GPU(그래픽스 처리 장치)에서 실행하여 코드 실행 속도를 높일 수 있습니다.
이 함수는 GPU 배열을 완전히 지원합니다. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
분산 배열
Parallel Computing Toolbox™를 사용하여 대규모 배열을 클러스터의 결합된 메모리에 걸쳐 분할할 수 있습니다.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)