topkrows

Верхние ряды в отсортированном порядке

Синтаксис

B = topkrows(X,k)
B = topkrows(X,k,col)
B = topkrows(___,direction)
B = topkrows(___,'ComparisonMethod',method)
[B,I] = topkrows(X,___)
B = topkrows(T,k)
B = topkrows(T,k,vars)
B = topkrows(T,k,vars,direction)
B = topkrows(___,'ComparisonMethod',method)
[B,I] = topkrows(T,___)

Описание

пример

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

пример

B = topkrows(X,k,col) сортирует результаты по столбцам, заданным col. Используйте этот синтаксис, чтобы выполнить несколько сортировок столбца по очереди. Например, topkrows(X,k,5) сортирует строки X в порядке убывания на основе элементов в пятой колонне. topkrows(X,k,[4 6]) первые виды строки в порядке убывания элементами в четвертом столбце, и затем это сортирует на основе элементов в шестом столбце, чтобы повредить связи.

пример

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

Например, topkrows(A,2,[2 3],{'ascend' 'descend'}) получает лучшие 2 строки первыми строками сортировки в порядке возрастания элементами в столбце 2. Затем это сортирует строки с равными записями в столбце 2 в порядке убывания элементами в столбце 3.

пример

B = topkrows(___,'ComparisonMethod',method) задает, как сравнить комплексные числа. Методом сравнения может быть 'auto', 'real' или 'abs'.

[B,I] = topkrows(X,___) также возвращает индексный вектор I, который описывает порядок выбранных строк, таким образом что B = X(I,:).

пример

B = topkrows(T,k) возвращает первые строки k в таблице или расписании T в отсортированном порядке. Строки таблицы находятся в убывающем отсортированном порядке всеми их переменными, и строки расписания находятся в убывающем отсортированном порядке ко времени.

пример

B = topkrows(T,k,vars) сортирует результаты по переменным, заданным vars. Используйте этот синтаксис для вида с несколькими переменными по очереди. Например, topkrows(T,k,{'Var1','Var2'}) первые виды строки T на основе элементов в Var1, и затем это сортирует по элементам в Var2.

B = topkrows(T,k,vars,direction) задает направление сортировки. Например, используйте 'ascend', чтобы отсортировать T в порядке возрастания.

B = topkrows(___,'ComparisonMethod',method) задает, как сравнить комплексные числа. Методом сравнения может быть 'auto', 'real' или 'abs'.

[B,I] = topkrows(T,___) также возвращает индексный вектор I, который описывает порядок выбранных строк, таким образом что B = T(I,:).

Примеры

свернуть все

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

Создайте 20 5 матрица случайных целых чисел между 1 и 10.

rng default % for reproducibility
X = randi(10,20,5);

Сортировка строк X в порядке убывания и возвращает лучшие 4 строки. По умолчанию, виды topkrows с помощью первого столбца матрицы. Для любых строк, которые имеют равные элементы в конкретном столбце, сортировка основана на столбце сразу направо.

TA = topkrows(X,4)
TA = 4×5

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

Когда названо тремя входными параметрами, topkrows основывает вид полностью на столбце, заданном в третьем аргументе. Это означает, что строки с равными значениями в заданном столбце остаются в их первоначальном заказе. Сортировка X в порядке убывания с помощью значений в третьем столбце и возвращает лучшие 5 строк.

TB = topkrows(X,5,3)
TB = 5×5

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

Сортировка X с помощью и третьих и четвертых столбцов. В этом случае topkrows сортирует строки по столбцу 3. Затем для любых строк с равными значениями в столбце 3 это сортирует по столбцу 4.

TC = topkrows(X,5,[3 4])
TC = 5×5

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

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

Создайте 100 5 матрица случайных целых чисел между 1 и 10.

rng default % for reproducibility
X = randi(10,100,5);

Сортировка X с помощью первых трех столбцов и возвращает лучшие 10 строк. Задайте направление сортировки для каждого столбца с помощью массива ячеек.

TA = topkrows(X,10,1:3,{'descend','ascend','ascend'})
TA = 10×5

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

Сортировка строк гетерогенных данных в таблице.

Составьте таблицу от набора данных patients.mat, который включает основную медицинскую информацию для группы пациентов. Включайте возраст пациентов, пол, высоту и их самооцененное состояние здоровья в таблице. Сделайте переменную SelfAssessedHealthStatus порядковым категориальным массивом.

load patients
vals = {'Poor','Fair','Good','Excellent'};
SelfAssessedHealthStatus = categorical(SelfAssessedHealthStatus,vals,'Ordinal',true);
T = table(Age,Gender,Height,SelfAssessedHealthStatus);

Найдите лучшие 10 строк, когда таблица будет отсортирована в порядке убывания. Результат сортируется по первой переменной, Age, в порядке убывания. Остальные столбцы подсортируются, чтобы повредить связи:

  • Переменная Gender подсортируется, чтобы повредить связи с возрастом.

  • Переменная Height повреждает связи с полом.

  • Переменная SelfAssessedHealthStatus повреждает связи с высотой.

TA = topkrows(T,10)
TA=10×4 table
    Age     Gender     Height    SelfAssessedHealthStatus
    ___    ________    ______    ________________________

    50     'Male'        72             Excellent        
    50     'Male'        68             Good             
    49     'Male'        70             Fair             
    49     'Male'        68             Poor             
    49     'Female'      64             Good             
    49     'Female'      63             Good             
    48     'Male'        71             Good             
    48     'Male'        71             Good             
    48     'Male'        66             Fair             
    48     'Female'      66             Excellent        

Найдите лучшие 10 строк, содержащих самых молодых женщин путем сортировки на переменной Gender и подсортировки на переменной Age.

TB = topkrows(T,10,{'Gender','Age'},'ascend')
TB=10×4 table
    Age     Gender     Height    SelfAssessedHealthStatus
    ___    ________    ______    ________________________

    25     'Female'      63             Good             
    25     'Female'      64             Excellent        
    27     'Female'      69             Fair             
    28     'Female'      65             Good             
    28     'Female'      65             Good             
    28     'Female'      66             Good             
    29     'Female'      63             Excellent        
    29     'Female'      68             Excellent        
    29     'Female'      64             Good             
    30     'Female'      67             Excellent        

Найдите лучшие 10 самых старых женщин путем изменения направления сортировки переменной Age к 'descend'.

TB = topkrows(T,10,{'Gender','Age'},{'ascend','descend'})
TB=10×4 table
    Age     Gender     Height    SelfAssessedHealthStatus
    ___    ________    ______    ________________________

    49     'Female'      64             Good             
    49     'Female'      63             Good             
    48     'Female'      65             Excellent        
    48     'Female'      66             Excellent        
    48     'Female'      64             Excellent        
    48     'Female'      64             Good             
    48     'Female'      66             Excellent        
    47     'Female'      66             Excellent        
    46     'Female'      68             Good             
    45     'Female'      68             Excellent        

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

Создайте 100 2 матрица случайных комплексных чисел.

valRange = [-10 10];
X = randi(valRange,100,2) + 1i*randi(valRange,100,2);

Найдите лучшие 12 строк матрицы. По умолчанию topkrows сравнивает комплексные числа абсолютным значением.

TA = topkrows(X,12)
TA = 12×2 complex

 -10.0000 + 9.0000i  10.0000 - 2.0000i
  -8.0000 + 9.0000i   2.0000 - 8.0000i
   9.0000 + 8.0000i   4.0000 + 7.0000i
  -6.0000 +10.0000i  -8.0000 - 7.0000i
   6.0000 -10.0000i  -1.0000 - 5.0000i
   6.0000 -10.0000i   0.0000 + 5.0000i
  -7.0000 + 9.0000i  -2.0000 - 5.0000i
   9.0000 - 7.0000i  10.0000 + 7.0000i
   9.0000 - 7.0000i   6.0000 + 6.0000i
  -9.0000 - 7.0000i   9.0000 + 9.0000i
      ⋮

Найдите лучшие 12 строк матрицы с помощью только действительную часть комплексных чисел путем определения пары "имя-значение" 'ComparisonMethod'.

TB = topkrows(X,12,'ComparisonMethod','real')
TB = 12×2 complex

  10.0000 + 4.0000i  -3.0000 - 7.0000i
  10.0000 + 3.0000i   4.0000 + 5.0000i
  10.0000 + 2.0000i   5.0000 - 7.0000i
  10.0000 - 1.0000i  -1.0000 - 8.0000i
  10.0000 - 1.0000i  -6.0000 +10.0000i
  10.0000 - 4.0000i  -9.0000 + 0.0000i
  10.0000 - 5.0000i  -8.0000 - 3.0000i
   9.0000 + 8.0000i   4.0000 + 7.0000i
   9.0000 + 5.0000i -10.0000 + 0.0000i
   9.0000 + 1.0000i   1.0000 - 9.0000i
      ⋮

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

свернуть все

Входной массив, заданный как числовое, логическое, символ, строка, категориальная, datetime или массив длительности.

  • Если X является непорядковым категориальным массивом, то topkrows сортирует элементы в порядке убывания на основе порядка категорий, возвращенных categories(X).

  • Если X содержит NaN, NaT или другие отсутствующие значения, то topkrows помещает отсутствующие значения в конце убывающего вида.

Типы данных: единственный | удваиваются | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический | char | строка | категориальный | datetime | длительность
Поддержка комплексного числа: Да

Входная таблица, заданная как таблица или расписание.

Таблица Типы данных: | расписание

Количество строк, чтобы возвратиться, заданный как неотрицательное скалярное целое число. Если k больше, чем количество строк в X, то topkrows возвращает все строки в X.

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

Пример: B = topkrows (X, 100, [1 3]) виды по первым и третьим столбцам прежде, чем возвратить лучшие 100 строк.

Переменные к виду, заданный как одна из опций в этой таблице.

ОпцияПримерОписание
положительное целое числоtopkrows(T,k,3)Целочисленный n задает индекс переменной к виду, как возвращено T.Properties.VariableNames{n}.
вектор положительных целых чиселtopkrows(T,k,[1 3])Векторный [n1 n2 …] задает индексы нескольких переменных к виду, как возвращено T.Properties.VariableNames{[n1 n2 …]}.
логический векторtopkrows(T,k,[true false true])Задает одну или несколько переменных к виду при помощи значений true или false.
имя переменнойtopkrows(T,k,'Var3')Задает переменную сортировки как одни из имен переменных, перечисленных в T.Properties.VariableNames .
cellArraytopkrows(T,k,{'Var1 'Var3'})Задает несколько переменных сортировки, выбранных из T.Properties.VariableNames .
'RowNames' topkrows(T,k,'RowNames')Для таблиц только. Эта опция сортирует результаты по именам строки.

Пример: B = topkrows (X, k, [1 3]) виды по первым и третьим столбцам.

Пример: B = topkrows (X, k, 'год') виды с помощью переменной года.

Сортируя направление, заданное или как 'descend', 'ascend' или как массив ячеек, который задает некоторую комбинацию этих значений.

Если direction является массивом ячеек, то он должен содержать 'descend' или 'ascend' для каждого столбца сортировки, заданного col или vars. Если вы не задаете col или vars, то массив ячеек должен содержать 'descend' или 'ascend' для каждого столбца в X или переменной в T.

Метод сравнения для комплексных чисел, заданных как одно из этих значений:

  • 'auto' (значение по умолчанию) Сравнивает вещественные числа согласно 'real' и комплексные числа согласно 'abs'.

  • действительный Сравнивает числа действительной частью real(A). Числа с равной действительной частью подсортируются по мнимой части imag(A).

  • abs Сравнивает числа абсолютным значением abs(A). Числа с равным значением подсортируются по углу фазы angle(A).

Эта опция не поддерживает нечисловые входные данные (datetime, duration, string, и так далее).

Выходные аргументы

свернуть все

Требуемые строки, возвращенные как массив того же класса как X или T.

Индексы строки, возвращенные как вектор. I описывает порядок выбранных строк, таким образом что B = X(I,:) или B = T(I,:).

Советы

  • topkrows не делает полного вида входных данных, таким образом, это обычно быстрее, чем sort и sortrows, когда количество требуемых строк является маленьким.

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

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

| | | | |

Введенный в R2017b

Была ли эта тема полезной?