вид

Сортировка элементов символьных векторов или матриц

Синтаксис

Y = sort(X)
[Y,I] = sort(___)
___= sort(X,dim)
___= sort(___,'descend')

Описание

пример

Y = sort(X) сортирует элементы символьного вектора или матрицы в порядке возрастания. Если X является вектором, sort(X) сортирует элементы X в лексикографическом порядке. Если X является матрицей, виды sort(X) каждый столбец X.

пример

[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(X,dim) сортирует элементы X по измерению dim. Таким образом, если X является двумерной матрицей, то элементы видов sort(X,1) каждого столбца X и элементы видов sort(X,2) каждой строки.

пример

___= sort(___,'descend') виды X в порядке убывания. По умолчанию sort использует порядок по возрастанию.

Примеры

Сортировка векторных элементов

По умолчанию 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]

Входные параметры

свернуть все

Введите, который должен быть отсортирован, задан как символьный вектор или матрица.

Размерность, которая задает направление расчета, заданная как положительное целое число. Значением по умолчанию является 1. Если dim превышает количество размерностей X, то sort(X,dim) возвращает X, и [Y,I] = sort(X,dim) возвращает Y = X и I = ones(size(X)).

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

свернуть все

Отсортированный выходной параметр, возвращенный как символьный вектор или матрица.

Индексы, которые элементы Y имели в X, возвратились как символьный вектор или матрица. [Y,I] = sort(X,dim) также возвращает матричный I = ones(size(X)), если значение dim превышает количество размерностей X.

Советы

  • Вызов sort для векторов или матриц чисел, которые не являются символьными объектами, вызывает функцию MATLAB® sort.

  • Для комплексного входа X sort сравнивает элементы их значениями (комплексные модули), вычисленный с abs(X). Если комплексные числа имеют тот же комплексный модуль, sort сравнивает их углы фазы, angle(X).

  • Если вы используете 'ascend' вместо 'descend', то sort возвращает элементы в порядке возрастания, как это делает по умолчанию.

  • sort использует следующие правила:

    • Это сортирует символьные числа и числа с плавающей запятой численно.

    • Это сортирует символьные переменные в алфавитном порядке.

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

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