Матричная лаборатория MatLab



 

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

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

  • 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

 

Назад Начало Вперед