sort

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

Описание

пример

Y = sort(X) сортирует элементы X в возрастающем лексикографическом порядке.

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

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

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

пример

Y = sort(X,dim) сортирует элементы X по измерению dim. Например, если X двумерная матрица, затем sort(X,1) сортирует элементы каждого столбца X, и sort(X,2) сортирует элементы каждой строки.

пример

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

пример

[Y,I] = sort(___) также возвращает набор векторов индекса для любого из предыдущих синтаксисов. I одного размера с X и описывает расположение элементов X в Y по отсортированному измерению. Например, если X m- n матрица и вы сортируете элементы каждого столбца (dim = 1), затем каждый столбец I вектор индекса из отсортированного столбца X, таким образом, что

for j = 1:n
    Y(:,j) = X(I(:,j),j); 
end

Примеры

свернуть все

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

syms a b c d e
sort([7 e 1 c 5 d a b])
ans = (157abcde)

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

Создайте символьную матрицу.

X = magic(3)*sym('a')
X = 

(8aa6a3a5a7a4a9a2a)

Сортировка матричного X. По умолчанию, sort команда сортирует элементы каждого столбца.

Y = sort(X)
Y = 

(3aa2a4a5a6a8a9a7a)

Чтобы отсортировать элементы каждой строки, установите значение dim опция к 2.

Y = sort(X,2)
Y = 

(a6a8a3a5a7a2a4a9a)

Создайте символьную матрицу.

X = magic(3)*sym('a')
X = 

(8aa6a3a5a7a4a9a2a)

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

Y = sort(X,2,'descend')
Y = 

(8a6aa7a5a3a9a4a2a)

Найти индексы что каждый элемент матричного Y имел в исходном матричном X, вызовите sort с двумя выходными аргументами.

Создайте символьную матрицу X.

X = magic(3)*sym('a')
X = 

(8aa6a3a5a7a4a9a2a)

Сортировка каждого столбца X и возвратите индексы отсортированных элементов в I. Каждый столбец I содержит предотсортированные положения записей в Y.

[Y,I] = sort(X)
Y = 

(3aa2a4a5a6a8a9a7a)

I = 3×3

     2     1     3
     3     2     1
     1     3     2

Сортировка символьного векторного X это содержит вещественные и комплексные числа. Когда X содержит символьные вещественные и комплексные числа, sort(X) возвращает отсортированные вещественные числа, сопровождаемые отсортированными комплексными числами на основе их действительных частей.

X = sort(sym([2 -1/2 3+4i 5i 4+3i]))
X = 

(-1225i3+4i4+3i)

Создайте 2 символьным массивом 2 на 2, который содержит символьные числа, переменные и функции.

syms x y f(x);
X(:,:,1) = [y 1; 1/3 x];
X(:,:,2) = [x -2; 1/4 f(x)];
X
X(:,:,1) = 

(y113x)

X(:,:,2) = 

(x-214f(x))

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

Y = sort(X,3)
Y(:,:,1) = 

(x-214x)

Y(:,:,2) = 

(y113f(x))

Используйте X(:), представление столбца X, отсортировать все элементы X.

Y = sort(X(:))
Y = 

(-214131xxyf(x))

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

свернуть все

Входной массив в виде символьного вектора, матрицы или многомерного массива. sort использует следующие правила:

  • Если X содержит только символьные вещественные числа, которые рациональны, затем sort(X) сортирует элементы численно.

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

  • Если X содержит только символьные переменные, затем sort(X) сортирует элементы в алфавитном порядке.

  • Если X содержит соединение символьных чисел (с рациональными частями) и переменные, затем sort(X) возвращает следующую последовательность: отсортированные вещественные числа, отсортированные комплексные числа и отсортированные переменные.

  • Если X содержит символьные иррациональные числа, выражения, и функции, выдерживая сравнение и сортируя элементы могут быть в вычислительном отношении комплексными. Поэтому sort использует внутренние правила сортировки, чтобы оптимизировать ее эффективность.

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

Считайте двумерный входной массив X:

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

    Sorting of a 2-by-3 matrix along the columns.

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

    Sorting of a 2-by-3 matrix along the rows.

sort возвращает X если dim больше ndims(X).

Сортировка направления в виде 'ascend' или 'descend'.

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

свернуть все

Сортированный массив, возвращенный как символьный вектор, матрица или многомерный массив. Y одного размера и тип с X.

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

Советы

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

  • sort функциональные виды символьные комплексные числа по-другому по сравнению с MATLAB комплексные числа с плавающей точкой. Для символьного входа X это содержит комплексные числа, sort(X) сортирует комплексные числа сначала по их действительным частям, затем по их мнимым частям, чтобы повредить связи. Для входа X с плавающей точкой, по умолчанию, sort(X) комплексные числа видов их величиной, сопровождаемой их углами фазы в интервале (−π, π], чтобы повредить связи.

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