MATLAB 정렬 행

Ammar Ali 2023년1월30일
  1. MATLAB에서 sortrows() 함수를 사용하여 행렬 행 정렬
  2. MATLAB에서 sortrows() 함수를 사용하여 테이블 행 정렬
MATLAB 정렬 행

이 튜토리얼에서는 MATLAB의 sortrows() 함수를 사용하여 행렬에 있는 행을 정렬하는 방법에 대해 설명합니다. 데이터 분석 및 처리에 있어 데이터를 정렬할 때 데이터를 쉽게 분석하고 처리할 수 있도록 하기 때문에 정렬은 필수입니다.

예를 들어 병원에 환자 테이블이 있고 특정 사람을 찾고 싶은데 테이블이 정렬되어 있지 않으면 모든 데이터를 살펴보고 사람을 찾아야 합니다. 하지만 환자 이름의 첫 글자를 기준으로 테이블을 정렬하면 특정 글자부터 시작하는 이름만 보기 때문에 쉽게 그 사람을 볼 수 있다.

MATLAB에서 sortrows() 함수를 사용하여 행렬 행 정렬

Matlab의 sortrows() 함수를 사용하여 행렬에 있는 행을 정렬할 수 있습니다. sortrows() 함수의 첫 번째 구문은 다음과 같습니다.

output = sortrows(matrix)

위의 구문은 첫 번째 열의 요소 또는 각 행의 첫 번째 요소에 따라 주어진 행렬의 행을 오름차순으로 정렬합니다. 둘 이상의 행에 동일한 첫 번째 요소가 있는 경우 함수는 두 번째 요소를 비교하는 식으로 계속됩니다.

예를 들어 위의 구문을 사용하여 행렬의 행을 정렬해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_matrix = [5:10;2:7;3:8]
New_matrix = sortrows(My_matrix)

출력:

My_matrix =

     5     6     7     8     9    10
     2     3     4     5     6     7
     3     4     5     6     7     8


New_matrix =

     2     3     4     5     6     7
     3     4     5     6     7     8
     5     6     7     8     9    10

위의 코드에서 3x6 행렬을 만들고 행을 정렬했습니다. 결과를 확인하기 위해 출력에서 ​​두 행렬을 비교할 수 있습니다.

My_matrix 행렬의 첫 번째 열을 보면 두 번째 행의 첫 번째 요소가 가장 작고 첫 번째 값이 가장 높은 첫 번째 행이 마지막에 오기 때문에 두 번째 행이 먼저 오는 것을 알 수 있습니다. 산출. sortrows() 함수 내에서 모든 크기의 행렬을 전달할 수 있습니다.

sortrows() 함수의 두 번째 구문은 다음과 같습니다.

output = sortrows(matrix, column)

위의 구문을 사용하여 입력 행렬에서 열 번호를 설정할 수 있습니다. 이 열 번호는 주어진 행렬에 있는 행을 정렬하는 데 사용됩니다. 열 번호를 전달하지 않으면 함수는 행 정렬을 위해 행렬의 첫 번째 열을 사용합니다.

벡터에 여러 열 번호를 전달할 수도 있으며 이 함수는 첫 번째 열 번호에 따라 행을 정렬합니다. 두 개 이상의 동일한 값이 현재 열에 있는 경우 함수는 주어진 벡터에 있는 다음 열 번호로 이동합니다.

예를 들어, 정렬을 위해 두 번째와 세 번째 열을 사용하여 행렬의 행을 정렬해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_matrix = [5:10;3:8;7:-1:2]
New_matrix = sortrows(My_matrix,[3 4])

출력:

My_matrix =

     5     6     7     8     9    10
     3     4     5     6     7     8
     7     6     5     4     3     2


New_matrix =

     7     6     5     4     3     2
     3     4     5     6     7     8
     5     6     7     8     9    10

New_matrix 행렬의 세 번째와 네 번째 열을 보면 세 번째와 네 번째 열의 요소가 정렬되어 있음을 알 수 있습니다. 동일한 값이 있는 단일 열 번호만 전달하면 함수가 행의 위치를 ​​변경하지 않습니다.

sortrows()의 세 번째 구문은 다음과 같습니다.

output = sortrows(matrix, column, direction)

위의 구문에서 방향은 행의 오름차순을 위한 ascend, 행의 내림차순을 위한 descend와 같이 행을 정렬하려는 순서를 정의합니다. 기본적으로 순서는 오름차순으로 설정됩니다.

열 번호가 여러 개인 경우 각 열에 사용할 셀 데이터 유형으로 여러 방향을 추가할 수도 있습니다.

예를 들어 두 개의 열 번호와 두 개의 방향을 정의하면 첫 번째 열은 첫 번째 방향에 따라 정렬됩니다. 동일한 값이 있는 경우 함수는 두 번째 열로 이동하여 두 번째 방향에 따라 행을 정렬합니다.

예를 들어 위의 행렬을 두 방향에 따라 정렬해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

My_matrix = [5:10;3:8;7:-1:2]
New_matrix = sortrows(My_matrix,[3 4],{'ascend' 'descend'})

출력:

My_matrix =

     5     6     7     8     9    10
     3     4     5     6     7     8
     7     6     5     4     3     2


New_matrix =

     3     4     5     6     7     8
     7     6     5     4     3     2
     5     6     7     8     9    10

위의 출력에서 ​​함수가 세 번째 열에 있는 두 개의 동일한 값인 5에 도달하면 네 번째 열로 이동하여 6과 4 값을 사용하고 방향이 5이므로 내림차순으로 정렬합니다. 두 번째 열 번호는 내림차순입니다. 이제 sortrows() 함수를 사용하여 테이블의 행을 정렬하는 방법에 대해 이야기해 보겠습니다.

MATLAB에서 sortrows() 함수를 사용하여 테이블 행 정렬

위의 행렬의 행을 정렬한 것과 같은 방식으로 sortrows() 함수를 사용하여 테이블의 행을 정렬할 수도 있습니다. 정렬에 사용할 변수나 열과 정렬 방향이나 순서도 설정할 수 있습니다.

예를 들어 테이블을 만들고 변수에 따라 행을 정렬해 보겠습니다. 아래 코드를 참조하십시오.

clc
clear

P_Name = {'Smith';'John';'Will';'Jones';'Brown'};
P_Age = [37;47;37;40;49];
P_Height = [72;68;63;67;64];

P_table = table(P_Age,P_Height,'RowNames',P_Name)
Sorted_table = sortrows(P_table,'P_Height','descend')

출력:

P_table =

  5×2 table

             P_Age    P_Height
             _____    ________

    Smith     37         72
    John      47         68
    Will      37         63
    Jones     40         67
    Brown     49         64


Sorted_table =

  5×2 table

             P_Age    P_Height
             _____    ________

    Smith     37         72
    John      47         68
    Jones     40         67
    Brown     49         64
    Will      37         63

위의 코드에서 우리는 이름, 나이, 키를 포함하는 환자의 테이블을 만들고 테이블을 환자의 키에 따라 내림차순으로 정렬했습니다. 테이블이 환자 키의 내림차순으로 정렬된 것을 출력에서 ​​볼 수 있습니다.

행렬의 경우처럼 정렬을 위해 여러 변수와 방향을 사용할 수도 있습니다. 변수가 여러 개인 경우 셀에 변수와 방향 이름을 전달해야 합니다.

기본적으로 sortrows() 함수는 모든 변수와 오름차순을 사용하여 주어진 테이블의 행을 정렬합니다. 변수 이름 대신 RowNames 인수를 사용하여 이름에 따라 행을 정렬할 수도 있습니다.

테이블에 누락된 배치가 있고 누락된 배치에 따라 테이블을 정렬하려는 경우 MissingPlacement 인수를 사용할 수 있습니다. 그런 다음 first와 같은 값을 전달하여 누락된 값을 먼저 배치하고 last는 값을 마지막에 배치하고 auto는 요소를 오름차순으로 먼저 배치하고 내림차순의 경우 마지막에 요소를 배치할 수 있습니다.

ComparisonMethod 인수를 사용하여 값을 비교하는 데 사용되는 방법을 변경할 수도 있습니다. 그 후, 실제 값은 real, 복소수 값은 abs, 실제 입력의 경우 실제 값을 사용하고 복소수 입력의 경우 복소수 값을 사용하는 auto와 같은 메서드 이름을 전달해야 합니다. .

비교 방법은 복잡한 값의 경우에 유용합니다. 예를 들어 복소수 값의 실수 부분만 비교하려면 real 방법을 사용하고 복소수 값의 절대값을 구하려면 abs 방법을 사용할 수 있습니다.

입력 행렬이나 테이블의 행 재배열을 보여주는 sortrows() 함수에서 인덱스를 가져올 수도 있습니다. 위 속성의 구문은 다음과 같습니다.

[Sorted_table, index] = sortrows(P_table,'RowNames','MissingPlacement','last','ComparisonMethod','abs')

입력 행렬이나 테이블에서 특정 수의 행을 정렬하려면 이를 별도의 행렬이나 테이블에 저장한 다음 sortrows() 함수를 사용하고 결과를 원래 테이블이나 행렬에 다시 저장해야 합니다. sortrows() 함수에 대한 자세한 내용은 이 링크를 확인하십시오.

작가: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

관련 문장 - MATLAB Matrix