sort

Сортировка массива

Описание

пример

B = sort(A) сортирует элементы A в порядке возрастания.

  • Если A вектор, затем sort(A) сортирует векторные элементы.

  • Если A матрица, затем sort(A) обрабатывает столбцы A как векторы и виды каждый столбец.

  • Если A многомерный массив, затем sort(A) действует вдоль первого измерения массива, размер которого не равняется 1, обрабатывая элементы как векторы.

пример

B = sort(A,dim) возвращает отсортированные элементы A по измерению dim. Например, если A матрица, затем sort(A,2) сортирует элементы каждой строки.

пример

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

пример

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

пример

[B,I] = sort(___) также возвращает набор векторов индекса для любого из предыдущих синтаксисов. I одного размера с A и описывает расположение элементов A в B по отсортированному измерению. Например, если A вектор, затем B = A(I).

Примеры

свернуть все

Создайте вектор-строку и отсортируйте его элементы в порядке возрастания.

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

Начиная в R2017a, можно создать строковые массивы с помощью двойных кавычек и отсортировать их использующий sort функция. Сортировка строк в каждом столбце массива строк согласно лексикографическому порядку Unicode®.

A = ["Santos","Burns"; ...
     "Jones","Morita"; ...
     "Petrov","Adams"];
B = sort(A)
B = 3x2 string array
    "Jones"     "Adams" 
    "Petrov"    "Burns" 
    "Santos"    "Morita"

Сортировка строк в каждой строке.

B = sort(A,2)
B = 3x2 string array
    "Burns"    "Santos"
    "Jones"    "Morita"
    "Adams"    "Petrov"

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

ds = {'2012-12-22';'2063-04-05';'1992-01-12'};
A = datetime(ds,'Format','yyyy-MM-dd')
A = 3x1 datetime array
   2012-12-22
   2063-04-05
   1992-01-12

[B,I] = sort(A)
B = 3x1 datetime array
   1992-01-12
   2012-12-22
   2063-04-05

I = 3×1

     3
     1
     2

B перечисляет отсортированные даты и I содержит соответствующие индексы A.

Доступ к отсортированным элементам от исходного массива непосредственно при помощи массива индекса I.

A(I)
ans = 3x1 datetime array
   1992-01-12
   2012-12-22
   2063-04-05

Создайте 2 массивом 2 на 2 и отсортируйте его элементы в порядке возрастания по третьему измерению.

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 повреждает связь на основе их мнимых частей.

A = [1+2i 3+i i 0 -i];
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 скаляр, затем sort(A) возвращает A.

  • Если A является комплексным, затем по умолчанию, sort сортирует элементы по величине. Если больше чем один элемент имеет равную величину, то элементы сортируются по углу фазы на интервале (−π, π].

  • Если A массив ячеек из символьных векторов или массив строк, затем sort(A) сортирует элементы согласно порядку кода для схемы кодировки символов UTF-16. Вид является чувствительным к регистру. Для получения дополнительной информации о сортировке символьных массивов и строковых массивов, смотрите Порядок сортировки для Символьных массивов и Строковых массивов.

  • Если A массив строк, затем sort переупорядочивает элементы массива, но не переупорядочивает символы в строках.

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

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

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

  • Рассмотрите матричный A. sort(A,1) сортирует элементы в столбцах A.

  • sort(A,2) сортирует элементы в строках A.

sort возвращает A если dim больше ndims(A)dim не поддержан когда A массив ячеек, то есть, sort только действует вдоль первого измерения массива, размер которого не равняется 1.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Сортировка направления, заданного как 'ascend' или 'descend'. direction не поддержан когда A массив ячеек, то есть, sort только виды в порядке возрастания.

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

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

Пример: sort(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. Порядок элементов в B сохраняет порядок любых равных элементов в A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | cell | categorical | datetime | duration

Сортировка индекса, возвращенного как вектор, матрица или многомерный массив. I одного размера с A. Векторы индекса ориентированы по тому же измерению что sort работает с. Например, если A 2 3 матрица, затем [B,I] = sort(A,2) сортирует элементы в каждой строке A. Выход I набор 1 3 векторов индекса строки, описывающих перестановку каждой строки A.

Больше о

свернуть все

Порядок сортировки для символьных массивов и массивов строк

MATLAB® хранит символы как Unicode® с помощью схемы кодировки символов UTF-16. Символьные массивы и строковые массивы сортируются согласно порядку кодовой точки UTF-16. Для символов, которые являются также символами ASCII, этот порядок означает, что прописные письма приходят перед строчными буквами. Цифры и некоторая пунктуация также прибывают перед буквами.

Советы

  • sortrows функция обеспечивает дополнительную гибкость для подсортировки по нескольким столбцам табличных входных параметров или матрицы.

  • sort функционируйте и операторы отношения используют различные упорядоченные расположения в комплексных числах. Для получения дополнительной информации смотрите Реляционные операции.

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

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