topkrows

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

Описание

пример

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'действительный, или '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'действительный, или '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 основывает вид полностью на столбце, заданном в третьем аргументе. Это означает, что строки с равными значениями в заданном столбце остаются в их первоначальном заказе. Sortx в порядке убывания использование значений в третьем столбце и возвращает лучшие 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

Sortx использование и третьи и четвертые столбцы. В этом случае, 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);

Sortx использование первых трех столбцов и возвращает лучшие 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);

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

TA = topkrows(X,10)
TA = 10×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

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

TB = topkrows(X,10,'ComparisonMethod','real')
TB = 10×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 содержит NaNNAT, или другие отсутствующие значения, затем topkrows помещает отсутствующие значения в конце убывающего вида.

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

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

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

Количество строк, чтобы возвратиться, заданный как неотрицательное скалярное целое число. Если 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,'Year') виды с помощью Year переменная.

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

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

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

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

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

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

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

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

свернуть все

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

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

Советы

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

Вопросы совместимости

развернуть все

Поведение изменяется в R2017b

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

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

| | | | |

Введенный в R2017b