sortrows

Сортировка строк массива или таблицы

Описание

пример

B = sortrows(A) сортирует строки матрицы в порядке возрастания на основе элементов в первом столбце. Когда первый столбец содержит повторенные элементы, sortrows виды согласно значениям в следующем столбце и повторениях это поведение для следования за равными значениями.

пример

B = sortrows(A,column) виды A на основе столбцов, заданных в векторном column. Например, sortrows(A,4) сортирует строки A в порядке возрастания на основе элементов в четвертом столбце. sortrows(A,[4 6]) первые виды строки A на основе элементов в четвертом столбце, затем на основе элементов в шестом столбце, чтобы повредить связи.

пример

B = sortrows(___,direction) сортирует строки A в порядке, заданном direction для любого из предыдущих синтаксисов. direction может быть 'ascend' (значение по умолчанию) для порядка по возрастанию или 'descend' для порядка убывания. direction может также быть массив ячеек, элементами которого является 'ascend' и 'descend', где каждый элемент соответствует столбцу что sortrows работает с. Например, sortrows(A,[4 6],{'ascend' 'descend'}) сортирует строки A в порядке возрастания на основе четвертого столбца, затем в порядке убывания на основе шестого столбца, чтобы повредить связи.

пример

B = sortrows(___,Name,Value) задает дополнительные параметры для сортировки строк. Например, sortrows(A,'ComparisonMethod','abs') сортирует элементы A величиной.

пример

[B,index] = sortrows(___) также возвращает вектор индекса, который описывает перестановку строк, таким образом что B = A(index,:).

пример

tblB = sortrows(tblA) сортирует строки таблицы в порядке возрастания на основе значений в первой переменной. Если элементы в первой переменной повторяются, то sortrows виды элементами во второй переменной, и так далее.

Если tblA расписание, затем sortrows сортирует строки tblA в порядке возрастания на основе его времен строки. Времена строки расписания помечают строки по первому измерению расписания.

пример

tblB = sortrows(tblA,'RowNames') сортирует таблицу на основе ее имен строки. Имена строки таблицы помечают строки по первому измерению таблицы. Если tblA не имеет имен строки, то есть, если tblA.Properties.RowNames пусто, затем sortrows возвращает tblA.

Этот синтаксис не поддержан когда tblA расписание.

пример

tblB = sortrows(tblA,rowDimName) виды tblA строкой маркирует rowDimName по первому измерению.

  • Если tblA таблица, затем метки строки являются именами строки.

  • Если tblA расписание, затем метки строки являются временами строки.

пример

tblB = sortrows(tblA,vars) сортирует таблицу по элементам в переменных, заданных vars. Например, sortrows(tblA,{'Var1','Var2'}) первые виды строки tblA на основе элементов в Var1, затем элементами в Var2.

  • Если tblA таблица, и она имеет имена строки, затем vars может включить имена строк.

  • Если tblA расписание, затем vars может включать времена строки.

пример

tblB = sortrows(___,direction) виды tblA в порядке, заданном direction для любого из предыдущих табличных синтаксисов. direction может быть 'ascend' или 'descend', который применяется ко всем заданным переменным, именам строки, или времена строки что sortrows работает с. direction может также быть массив ячеек, элементами которого является 'ascend' и 'descend', где каждый элемент соответствует заданным переменным, именам строки, или времена строки, отсортированные на.

пример

tblB = sortrows(___,Name,Value) задает дополнительные параметры для сортировки строк таблицы или расписания. Например, sortrows(tblA,'Var1','MissingPlacement','first') виды на основе элементов в Var1, упорядоченное расположение недостающих элементов, таких как NaN в начале таблицы.

пример

[tblB,index] = sortrows(___) также возвращается, индекс векторизовали таким образом что tblB = tblA(index,:).

Примеры

свернуть все

Создайте матрицу и отсортируйте ее строки в порядке возрастания на основе элементов в первом столбце. Когда первый столбец содержит повторенные элементы, sortrows смотрит на элементы во втором столбце, чтобы повредить связь. Для повторных элементов во втором столбце, sortrows смотрит на третий столбец, и так далее.

A = floor(gallery('uniformdata',[6 7],0)*100);
A(1:4,1) = 95;  A(5:6,1) = 76;  A(2:4,2) = 7;  A(3,3) = 73
A = 6×7

    95    45    92    41    13     1    84
    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
    95     7    40    35    60    93    67
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1

B = sortrows(A) 
B = 6×7

    76    61    93    81    27    46    83
    76    79    91     0    19    41     1
    95     7    40    35    60    93    67
    95     7    73     5    19    44    20
    95     7    73    89    20    74    52
    95    45    92    41    13     1    84

Сортировка строк A на основе значений во втором столбце. Когда заданный столбец повторил элементы, соответствующие строки поддерживают свой первоначальный порядок.

C = sortrows(A,2)
C = 6×7

    95     7    73    89    20    74    52
    95     7    73     5    19    44    20
    95     7    40    35    60    93    67
    95    45    92    41    13     1    84
    76    61    93    81    27    46    83
    76    79    91     0    19    41     1

Сортировка строк A на основе элементов в первом столбце, и смотрят на седьмой столбец, чтобы повредить любые связи.

D = sortrows(A,[1 7])
D = 6×7

    76    79    91     0    19    41     1
    76    61    93    81    27    46    83
    95     7    73     5    19    44    20
    95     7    73    89    20    74    52
    95     7    40    35    60    93    67
    95    45    92    41    13     1    84

Сортировка строк A в порядке убывания на основе элементов в четвертом столбце и отображения выходной вектор index чтобы видеть, как строки были перестроены.

[E,index] = sortrows(A,4,'descend')
E = 6×7

    95     7    73    89    20    74    52
    76    61    93    81    27    46    83
    95    45    92    41    13     1    84
    95     7    40    35    60    93    67
    95     7    73     5    19    44    20
    76    79    91     0    19    41     1

index = 6×1

     2
     5
     1
     4
     3
     6

Создайте матрицу, содержащую комплексные числа, и отсортируйте строки матрицы в порядке возрастания на основе элементов в первом столбце. Начиная с величин A(1,1) и A(3,1) равны, sortrows вычисляет их углы, чтобы повредить связь.

A = [1+2i 3+i i; 2+10i 6i 2+5i; 2+i 4 3+3i]
A = 3×3 complex

   1.0000 + 2.0000i   3.0000 + 1.0000i   0.0000 + 1.0000i
   2.0000 +10.0000i   0.0000 + 6.0000i   2.0000 + 5.0000i
   2.0000 + 1.0000i   4.0000 + 0.0000i   3.0000 + 3.0000i

B = sortrows(A)
B = 3×3 complex

   2.0000 + 1.0000i   4.0000 + 0.0000i   3.0000 + 3.0000i
   1.0000 + 2.0000i   3.0000 + 1.0000i   0.0000 + 1.0000i
   2.0000 +10.0000i   0.0000 + 6.0000i   2.0000 + 5.0000i

angle(A(1,1))
ans = 1.1071
angle(A(3,1))
ans = 0.4636

Используйте 'real' опция, чтобы отсортировать строки A их действительной частью. Начиная с A(2,1) и A(3,1) имейте равные действительные части, sortrows использует мнимую часть, чтобы повредить связь.

C = sortrows(A,'ComparisonMethod','real')
C = 3×3 complex

   1.0000 + 2.0000i   3.0000 + 1.0000i   0.0000 + 1.0000i
   2.0000 + 1.0000i   4.0000 + 0.0000i   3.0000 + 3.0000i
   2.0000 +10.0000i   0.0000 + 6.0000i   2.0000 + 5.0000i

imag(A(2,1))
ans = 10
imag(A(3,1))
ans = 1

Создайте 6 2 массив ячеек из символьных векторов и отсортируйте его строки. Результатом является расположенный в алфавитном порядке список, отсортированный и по стране и по имени.

A = {'Germany' 'Lukas'; 'USA' 'William'; 'USA' 'Andrew'; ...
'Germany' 'Andreas'; 'USA' 'Olivia'; 'Germany' 'Julia'} 
A = 6x2 cell array
    {'Germany'}    {'Lukas'  }
    {'USA'    }    {'William'}
    {'USA'    }    {'Andrew' }
    {'Germany'}    {'Andreas'}
    {'USA'    }    {'Olivia' }
    {'Germany'}    {'Julia'  }

B = sortrows(A)
B = 6x2 cell array
    {'Germany'}    {'Andreas'}
    {'Germany'}    {'Julia'  }
    {'Germany'}    {'Lukas'  }
    {'USA'    }    {'Andrew' }
    {'USA'    }    {'Olivia' }
    {'USA'    }    {'William'}

Сортировка стран сначала, затем отсортируйте имена в порядке убывания.

C = sortrows(A,[1 2],{'ascend' 'descend'})
C = 6x2 cell array
    {'Germany'}    {'Lukas'  }
    {'Germany'}    {'Julia'  }
    {'Germany'}    {'Andreas'}
    {'USA'    }    {'William'}
    {'USA'    }    {'Olivia' }
    {'USA'    }    {'Andrew' }

Сортировка строк таблицы значениями переменных.

Составьте таблицу с четырьмя переменными, перечисляющими терпеливую информацию для пяти человек.

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38       71       176       124     93  
    Johnson     43       69       163       109     77  
    Williams    38       64       131       125     83  
    Jones       40       67       133       117     75  
    Brown       49       64       119       122     80  

Сортировка строк таблицы. sortrows функциональные виды строки в порядке возрастания сначала переменной Age, и затем переменной Height повредить связь между этими двумя строками с равными возрастами.

tblB = sortrows(tblA)
tblB=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Williams    38       64       131       125     83  
    Smith       38       71       176       124     93  
    Jones       40       67       133       117     75  
    Johnson     43       69       163       109     77  
    Brown       49       64       119       122     80  

Составьте таблицу с четырьмя переменными, перечисляющими терпеливую информацию для пяти человек.

LastName = {'Smith';'Johnson';'Williams';'Jones';'Brown'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Smith       38       71       176       124     93  
    Johnson     43       69       163       109     77  
    Williams    38       64       131       125     83  
    Jones       40       67       133       117     75  
    Brown       49       64       119       122     80  

Сортировка строк таблицы в порядке возрастания на основе имен строки, и возвращает вектор индекса, который описывает, как строки были перестроены.

[tblB,index] = sortrows(tblA,'RowNames')
tblB=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Brown       49       64       119       122     80  
    Johnson     43       69       163       109     77  
    Jones       40       67       133       117     75  
    Smith       38       71       176       124     93  
    Williams    38       64       131       125     83  

index = 5×1

     5
     2
     4
     1
     3

Составьте таблицу с четырьмя переменными, перечисляющими терпеливую информацию для пяти человек.

LastName = {'Sweet';'Jacobson';'Wang';'Joiner';'Berger'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;163;131;133;119];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];

tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Sweet       38       71       176       124     93  
    Jacobson    43       69       163       109     77  
    Wang        38       64       131       125     83  
    Joiner      40       67       133       117     75  
    Berger      49       64       119       122     80  

Сортировка строк таблицы в порядке возрастания Height, и затем в порядке убывания Weight.

tblB = sortrows(tblA,{'Height','Weight'},{'ascend','descend'})
tblB=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Wang        38       64       131       125     83  
    Berger      49       64       119       122     80  
    Joiner      40       67       133       117     75  
    Jacobson    43       69       163       109     77  
    Sweet       38       71       176       124     93  

Составьте таблицу с четырьмя переменными, перечисляющими терпеливую информацию для пяти человек. Weight переменная содержит отсутствующие значения.

LastName = {'Sweet';'Jacobson';'Wang';'Joiner';'Berger'};
Age = [38;43;38;40;49];
Height = [71;69;64;67;64];
Weight = [176;NaN;131;133;NaN];
BloodPressure = [124 93; 109 77; 125 83; 117 75; 122 80];
tblA = table(Age,Height,Weight,BloodPressure,'RowNames',LastName)
tblA=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Sweet       38       71       176       124     93  
    Jacobson    43       69       NaN       109     77  
    Wang        38       64       131       125     83  
    Joiner      40       67       133       117     75  
    Berger      49       64       NaN       122     80  

Сортировка строк таблицы в порядке возрастания Weight, размещение строк, содержащих NaN сначала.

tblB = sortrows(tblA,'Weight','MissingPlacement','first')
tblB=5×4 table
                Age    Height    Weight    BloodPressure
                ___    ______    ______    _____________

    Jacobson    43       69       NaN       109     77  
    Berger      49       64       NaN       122     80  
    Wang        38       64       131       125     83  
    Joiner      40       67       133       117     75  
    Sweet       38       71       176       124     93  

Создайте расписание и отсортируйте строки ко временам строки.

TimeDuration = [hours(3) hours(2) hours(1) hours(5) hours(6)]';
TT = timetable(TimeDuration,[98;97.5;97.9;98.1;101],[120;111;119;117;118]);
           
B = sortrows(TT,'TimeDuration')
B=5×3 timetable
    TimeDuration    Var1    Var2
    ____________    ____    ____

    1 hr            97.9    119 
    2 hr            97.5    111 
    3 hr              98    120 
    5 hr            98.1    117 
    6 hr             101    118 

Входные параметры

свернуть все

Входной массив, заданный как вектор-столбец или матрица.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | categorical | datetime | duration
Поддержка комплексного числа: Да

Столбец, сортирующий вектор, заданный как ненулевой целочисленный скаляр или вектор ненулевых целых чисел. Каждое заданное целочисленное значение указывает на столбец к виду. Отрицательные целые числа указывают, что порядок сортировки убывает.

Сортировка направления, заданного как вектор символов или массив ячеек из символьных векторов, содержащий 'ascend' (значение по умолчанию) или 'descend'. Если direction массив ячеек из символьных векторов, затем количество записей должно совпадать с количеством столбцов или переменных, отсортированных на.

Если column аргумент и direction аргумент задан вместе, затем sortrows виды согласно direction, игнорирование знаков элементов в column.

Типы данных: char | cell

Входная таблица, заданная как таблица или расписание. Каждая переменная в tblA должен быть допустимый вход к sort или sortrows.

Типы данных: table | timetable

Имя первой размерности входной таблицы или расписания, заданного как вектор символов.

  • Если tblA таблица с именами строки, затем rowDimName имя первой размерности таблицы. По умолчанию именем первой размерности является 'Row'. Имена размерности являются свойством таблиц. Можно получить доступ к именам размерности tblA использование tblA.Properties.DimensionNames.

  • Если tblA расписание, затем rowDimName имя вектора времен строки. Можно задать его имя, когда вы создаете расписание, такое как Time или Date. Можно также получить доступ к именам размерности с помощью tblA.Properties.DimensionNames.

Пример: Если таблица T имеет имена строки, и вы поменяли имя первой размерности с помощью T.Properties.DimensionName{1} = 'Name', затем sortrows(T,'Name') сортирует таблицу по имени строки.

Пример: Если расписание TT имеет временной вектор под названием Date, затем sortrows(TT,'Date') сортирует расписание на датах и временах что Date содержит.

Типы данных: char

Сортируя переменные, заданные как скалярное целое число, вектор целых чисел, имени переменной, массива ячеек имен переменных или логического вектора. vars указывает на табличные переменные к виду.

Если элемент vars положительное целое число, затем sortrows сортирует соответствующую переменную в tblA в порядке возрастания. Если элемент vars отрицательное целое число, затем sortrows сортирует соответствующую переменную в tblA в порядке убывания.

Пример: sortrows(tblA,{'Height','Weight'}) сортирует строки tblA в порядке возрастания, сначала переменной Height, затем переменной Weight повредить связи.

Пример: sortrows(tblA,[1 4]) виды первой переменной tblA в порядке возрастания, затем виды четвертой переменной, чтобы повредить связи.

Пример: sortrows(TT,{'Time','X'}) сортирует времена строки расписания TT в порядке возрастания сначала, затем виды табличной переменной 'X' повредить связи.

Типы данных: double | single | char | cell | logical

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: sortrows(A,'MissingPlacement','last')

Размещение отсутствующих значений (NaNNAT, <undefined>, и missing) заданный как разделенная запятой пара, состоящая из 'MissingPlacement' и одно из следующего:

  • 'auto' — Недостающие элементы помещаются в последний раз для порядка по возрастанию и сначала для порядка убывания.

  • 'first' — Недостающие элементы занимают первое место.

  • 'last' — Недостающие элементы помещаются в последний раз.

Метод сравнения элемента, заданный как разделенная запятой пара, состоящая из 'ComparisonMethod' и одно из следующего:

  • 'auto' — Сортировка строк A real(A) когда A действительно, и вид abs(A) когда 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

Отсортированная таблица, возвращенная как таблица или расписание с теми же переменными как tblA.

Типы данных: table | timetable

Сортировка индекса, возвращенного как вектор индекса. Индекс вида описывает перестановку строк во входе, таким образом что B = A(index,:).

Типы данных: double

Расширенные возможности

Смотрите также

| | |

Представлено до R2006a