Сортировка элементов символьных векторов или матриц
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 использует внутренние правила сортировки.