Сортировка массива
сортирует элементы B
= sort(A
)A
в порядке возрастания.
Если A
вектор, затем sort(A)
сортирует векторные элементы.
Если A
матрица, затем sort(A)
обрабатывает столбцы A
как векторы и виды каждый столбец.
Если A
многомерный массив, затем sort(A)
действует вдоль первого измерения массива, размер которого не равняется 1, обрабатывая элементы как векторы.
задает дополнительные параметры для сортировки. Например, B
= sort(___,Name,Value
)sort(A,'ComparisonMethod','abs')
сортирует элементы A
величиной.
Создайте вектор-строку и отсортируйте его элементы в порядке возрастания.
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
"Jones" "Adams"
"Petrov" "Burns"
"Santos" "Morita"
Сортировка строк в каждой строке.
B = sort(A,2)
B = 3x2 string
"Burns" "Santos"
"Jones" "Morita"
"Adams" "Petrov"
datetime
МассивСоздайте массив datetime
значения и вид их в порядке возрастания, то есть, от самого раннего до последней календарной даты.
ds = {'2012-12-22';'2063-04-05';'1992-01-12'}; A = datetime(ds,'Format','yyyy-MM-dd')
A = 3x1 datetime
2012-12-22
2063-04-05
1992-01-12
[B,I] = sort(A)
B = 3x1 datetime
1992-01-12
2012-12-22
2063-04-05
I = 3×1
3
1
2
B
перечисляет отсортированные даты и I
содержит соответствующие индексы A
.
Доступ к отсортированным элементам от исходного массива непосредственно при помощи массива индекса I
.
A(I)
ans = 3x1 datetime
1992-01-12
2012-12-22
2063-04-05
Создайте два вектора-строки, которые содержат связанные данные в соответствующих элементах.
X = [3 6 4 2 1 5]; Y = ["yellow" "purple" "green" "orange" "red" "blue"];
Первый вид векторный X
, затем отсортируйте векторный Y
в том же порядке как X
.
[Xsorted,I] = sort(X)
Xsorted = 1×6
1 2 3 4 5 6
I = 1×6
5 4 1 3 6 2
Ysorted = Y(I)
Ysorted = 1x6 string
"red" "orange" "yellow" "green" "blue" "purple"
Создайте массив 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
функциональные комплексные числа видов их величиной и углы фазы использования связей пропусков. Задайте значение 'ComparisonMethod'
как 'real'
к вместо этого комплексным числам вида их действительными частями. Для элементов с равными действительными частями, sort
повреждает связь на основе их мнимых частей.
A = [1+2i 3+1i 1i 0 -1i]; 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
— Входной массивВходной массив, заданный как векторный, матричный или многомерный массив.
Если 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
Поддержка комплексного числа: Да
dim
— Размерность, которая задает направление расчетаВеличина для работы, заданная как положительный целый скаляр. Если значение не задано, то по умолчанию это первый размер массива, не равный 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
direction
— Сортировка направления'ascend'
(значение по умолчанию) | 'descend'
Сортировка направления в виде 'ascend'
или 'descend'
. direction
не поддерживается когда A
массив ячеек, то есть, sort
только виды в порядке возрастания.
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
sort(A,'MissingPlacement','last')
MissingPlacement
— Размещение отсутствующих значений'auto'
(значение по умолчанию) | 'first'
| 'last'
Размещение отсутствующих значений (NaN
NAT
, <undefined>
, и missing
) заданный как разделенная запятой пара, состоящая из 'MissingPlacement'
и одно из следующего:
'auto'
— Недостающие элементы помещаются в последний раз для порядка по возрастанию и сначала для порядка убывания.
'first'
— Недостающие элементы занимают первое место.
'last'
— Недостающие элементы помещаются в последний раз.
ComparisonMethod
— Метод сравнения элемента'auto'
(значение по умолчанию) | 'real'
| 'abs'
Метод сравнения элемента в виде разделенной запятой пары, состоящей из '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
— Сортированный массивСортированный массив, возвращенный как вектор, матрица или многомерный массив. B
одного размера и тип с A
.
Типы данных: double |
single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| cell
| categorical
| datetime
| duration
I
— Сортировка индексаСортировка индекса, возвращенного как вектор, матрица или многомерный массив. I
одного размера с A
. Векторы индекса ориентированы по тому же измерению что sort
работает с. Например, если A
матрица 2 на 3, затем [B,I] = sort(A,2)
сортирует элементы в каждой строке A
. Выход I
набор 1 3 векторов индекса строки, описывающих перестановку каждой строки A
.
Когда вход содержит повторенные значения, индекс вида сохраняет первоначальный заказ во входе, независимо от направления вида. Например, если A = [1 2 1 2]
, затем [Ba,Ia] = sort(A,'ascend')
возвращается вид индексируют Ia = [1 3 2 4]
и [Bd,Id] = sort(A,'descend')
возвращается вид индексируют Id = [2 4 1 3]
.
MATLAB® символы хранилищ как Unicode® использование схемы кодировки символов UTF-16. Символьные массивы и строковые массивы сортируются согласно порядку кодовой точки UTF-16. Для символов, которые являются также символами ASCII, этот порядок означает, что прописные письма приходят перед строчными буквами. Цифры и некоторая пунктуация также прибывают перед буквами.
sortrows
функция обеспечивает дополнительную гибкость для подсортировки по нескольким столбцам табличных входных параметров или матрицы.
sort
функционируйте и операторы отношения используют различные упорядоченные расположения для комплексных чисел. Для получения дополнительной информации смотрите Реляционные операции.
Эта функция поддерживает высокие массивы с ограничениями:
Необходимо задать размерность к виду, как в sort(X,dim)
.
Сортировка высокой размерности, как в sort(X,1)
, только поддерживается для вектор-столбцов.
Для получения дополнительной информации см. Раздел "Высокие массивы".
Указания и ограничения по применению:
Первый входной параметр не должен быть массивом ячеек.
Если A
является комплексным со всеми нулевыми мнимыми частями, затем MATLAB может преобразовать A
к real(A)
прежде, чем вызвать sort(A)
. В этом случае, виды MATLAB A
real(A)
, но виды сгенерированного кода A
abs(A)
. Чтобы заставить сгенерированный код совпадать с MATLAB, используйте sort(real(A))
или sort(A,'ComparisonMethod','real')
. Смотрите генерацию кода для комплексных данных с мнимыми частями с нулевым знаком (MATLAB Coder).
Если вы предоставляете dim
, затем это должно быть постоянно.
Для ограничений, связанных с входными параметрами переменного размера, смотрите Измеряющие Переменную Ограничения для Генерации кода Функций Тулбокса (MATLAB Coder).
backgroundPool
или ускорьте код с Parallel Computing Toolbox™ ThreadPool
.Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.