Сортировка элементов символьных векторов или матриц
Y = sort(X)
[Y,I] =
sort(___)
___= sort(X,dim)
___= sort(___,'descend')
[
показывает индексы, что каждый элемент Y
,I
] =
sort(___)Y
имел в исходном векторе или матричном X
.
Если X
является m
-by-n
матрица, и вы сортируете элементы каждого столбца (dim
= 2
), то каждый столбец I
является вектором перестановки соответствующего столбца X
, такого что
for j = 1:n Y(:,j) = X(I(:,j),j); end
Если X
является двумерной матрицей, и вы сортируете элементы каждого столбца, массив, I
показывает индексы строки, что элементы Y
имели в исходном матричном X
. Если вы сортируете элементы каждой строки, I
показывает индексы первоначального столбца.
По умолчанию sort
сортирует элемент вектора или матрицы в порядке возрастания.
Сортировка элементов следующего символьного вектора:
syms a b c d e sort([7 e 1 c 5 d a b])
ans = [ 1, 5, 7, a, b, c, d, e]
Чтобы найти индексы, которые каждый элемент нового векторного или матричного Y
имел в исходном векторе или матричном X
, вызовите sort
с двумя выходными аргументами.
Сортировка матричного X
, возвращающего матрицу индексов, которые каждый элемент отсортированной матрицы имел в X
:
X = sym(magic(3)); [Y, I] = sort(X)
Y = [ 3, 1, 2] [ 4, 5, 6] [ 8, 9, 7] I = 2 1 3 3 2 1 1 3 2
При сортировке элементов матрицы sort
может работать вдоль столбцов или строк той матрицы.
Сортировка элементов следующей символьной матрицы:
X = sym(magic(3))
X = [ 8, 1, 6] [ 3, 5, 7] [ 4, 9, 2]
По умолчанию, элементы видов команды sort
каждого столбца:
sort(X)
ans = [ 3, 1, 2] [ 4, 5, 6] [ 8, 9, 7]
Чтобы отсортировать элементы каждой строки, используйте, устанавливает значение опции dim
к 2
:
sort(X,2)
ans = [ 1, 6, 8] [ 3, 5, 7] [ 2, 4, 9]
sort
может отсортировать элементы вектора или матрицы в порядке убывания.
Сортировка элементов этого вектора в порядке убывания:
syms a b c d e sort([7 e 1 c 5 d a b], 'descend')
ans = [ e, d, c, b, a, 7, 5, 1]
Сортировка элементов каждого столбца этого матричного X
в порядке убывания:
X = sym(magic(3)) sort(X,'descend')
X = [ 8, 1, 6] [ 3, 5, 7] [ 4, 9, 2] ans = [ 8, 9, 7] [ 4, 5, 6] [ 3, 1, 2]
Теперь, отсортируйте элементы каждой строки X
в порядке убывания:
sort(X, 2, 'descend')
ans = [ 8, 6, 1] [ 7, 5, 3] [ 9, 4, 2]
Вызов sort
для векторов или матриц чисел, которые не являются символьными объектами, вызывает
функцию MATLAB® sort
.
Для комплексного входа X
sort
сравнивает элементы их значениями (комплексные модули), вычисленный с abs(X)
. Если комплексные числа имеют тот же комплексный модуль, sort
сравнивает их углы фазы, angle(X)
.
Если вы используете 'ascend'
вместо 'descend'
, то sort
возвращает элементы в порядке возрастания, как это делает по умолчанию.
sort
использует следующие правила:
Это сортирует символьные числа и числа с плавающей запятой численно.
Это сортирует символьные переменные в алфавитном порядке.
Во всех других случаях, включая символьные выражения и функции, sort
использует внутренние правила сортировки.