Иллюстрированный самоучитель по MatLab

Функции сортировки элементов массива

Многие операции статистической обработки данных выполняются быстрее и надежнее, если данные предварительно отсортированы. Кроме того, нередко представление данных в отсортированном виде более наглядно и ценно. Ряд функций служит для выполнения сортировки элементов массива. Они представлены ниже.

  • sort (А) – в случае одномерного массива А сортирует и возвращает элементы по возрастанию их значений; в случае двумерного массива происходит сортировка и возврат элементов каждого столбца. Допустимы вещественные, комплексные и строковые элементы. Если А принимает комплексные значения, то элементы сначала сортируются по абсолютному значению, а затем, если абсолютные значения равны, по аргументу. Если А включает NaN-элементы, sort помещает их в конец;
  • [В. INDEX] = sort(A) – наряду с отсортированным массивом возвращает массив индексов INDEX. Он имеет размер size(A), с помощью этого массива можно восстановить структуру исходного массива.
  • sort(A.dim) – для матриц сортирует элементы по столбцам (dim=l) или по рядам в зависимости от значения переменной dim.

Примеры:

>> A=magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
>> [B.INDEX] sort(A)
B=
4 5 1 2 3
10 6 7 8 9
11 12 13 14 15
17 18 19 20 16
23 24 25 21 22
index=
3 2 1 5 4
4 3 2 1 5
5 4 3 2 1
1 5 4 3 2
2 1 5 4 3
  • sortrows(A) – выполняет сортировку рядов массива А по возрастанию и возвращает отсортированный массив, который может быть или матрицей, или вектором-столбцом;
  • sortrows(A.column) – возвращает матрицу, отсортированную по столбцам, точно указанным в векторе column. Например, sortrows(A,[2 3]) сортирует строки матрицы А сначала по второму столбцу, и затем, если его элементы равны, по третьему;
  • [В, index] = sort rows (А) – также возвращает вектор индексов index. Если А – вектор-столбец, то B=A(index). Если А – матрица размера тхn, то B=A(index.:).

Примеры:

>> A=[2 35689: 5 7 1 2 3 5:1 3 2 1 5 1:5 0 8 8 4 3]
A =
2 3 5 6 8 9
5 7 1 2 3 5
1 3 2 1 5 1
5 0 8 8 4 3
>> В = sortrows(A)
B =
1 3 2 1 5 1
2 3 5 6 3 9
5 0 8 8 4 3
5 7 1 2 3 5
>> b = sortrows(A.3)
b=
5 7 1 2 3 5
1 3 2 1 5 1
2 3 5 6 8 9
5 0 8 8 4 3
  • cplxpair(A) – сортирует элементы по строкам или столбцам комплексного массива А, группируя вместе комплексно сопряженные пары. Затем найденные пары сортируются по возрастанию действительной части. Внутри пары элемент с отрицательной мнимой частью является первым. Действительные элементы следуют за комплексными парами. Заданный по умолчанию порог 100*eps относительно abs(A(i))) определяет, какие числа являются действительными и какие элементы являются комплексно сопряженными. Если А – вектор, cpl xpair (А) возвращает А вместе с комплексно сопряженными парами. Если А – матрица, cpl xpai r(А) возвращает матрицу А с комплексно сопряженными парами, сортированную по столбцам;
  • cplxpalr(A,tol) – отменяет заданный по умолчанию порог и задает новый tol;
  • cplxpair(A.[].dim) – сортирует матрицу А по строкам или по столбцам в зависимости от значения параметра dim;
  • cplxpair(A,tol,dim) – сортирует матрицу А по строкам или по столбцам в зависимости от значения параметра dim, используя заданный порог tol.

Пример:

>> A=[23+121.34-31.45:23-121.-12.21:-3.34+31.-21]
A =
23.0000 + 12.00001 34.0000-3.00001 45.0000
23.0000-12.00001-12.0000 0 + 2.00001
-3.0000 34.0000 + 3.00001 0-2.00001
>> cplxpair(A)
ans =
23.0000-12.00001 34.0000-3.00001 0-2.00001
23.0000 + 12.00001 34.0000 + 3.00001 0 + 2.00001
-3.0000-12.0000 45.0000
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.