Функции
сортировки элементов массива
Многие операции
статистической обработки данных выполняются быстрее и надежнее, если данные
предварительно отсортированы. Кроме того, нередко представление данных в отсортированном
виде более наглядно и ценно. Ряд функций служит для выполнения сортировки элементов
массива. Они представлены ниже.
-
sort (А)
— в случае одномерного массива А сортирует и возвращает элементы по возрастанию
их значений; в случае двумерного массива происходит сортировка и возврат
элементов каждого столбца. Допустимы вещественные, комплексные и строковые
элементы. Если А принимает комплексные значения, то элементы сначала сортируются
по абсолютному значению, а затем, если абсолютные значения равны, по аргументу.
Если А включает NaN-элементы, sort помещает их в конец;
-
[В. INDEX]
= sort(A) — наряду с отсортированным массивом возвращает массив индексов
INDEX. Он имеет размер size(A), с помощью этого массива можно восстановить
структуру исходного массива.
-
sort(A.dim)
— для матриц сортирует элементы по столбцам (dim=l) или по рядам в зависимости
от значения переменной dim.
Примеры:
»
A=magic(5)
|
|
А
=
|
|
|
|
|
|
17
|
24
|
1
|
8
|
15
|
|
23
|
5
|
7
|
14
|
16
|
|
4
|
б
|
13
|
20
|
22
|
|
10
|
12
|
19
|
21
|
3
|
|
11
|
18
|
25
|
2
|
9
|
|
»
[В.
B=
|
INDEX]
|
sort(A)
|
|
|
|
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). Если А — матрица размера
тхп,
то B=A(index.:).
Примеры:
»
А=[2 35689: 5 7 1 2 3 5:1 3 2 1 5 1:5 0 8 8 4 3]
А =
|
|
|
|
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)
|
|
|
|
|
|
в
|
=
|
|
|
|
|
|
|
|
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.
Пример:
»
А=[23+121.34-31.45:23-121.-12.21:-3.34+31.-21]
А =
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
Содержание раздела