20. Объединение малых матриц в большую

 

Объединение малых матриц в большую


Описанный способ задания матриц позволяет выполнить операцию конкатенации — объединения малых матриц в большую. Например, создадим вначале магическую матрицу размера 3x3:
» A=magic(3)
А=

8

1

6

3

5

7

4

9

2

Теперь можно построить матрицу, содержащую четыре матрицы:
» В-[А А+16:А+32 А+16] 

В =

8

1

6

24

17

22

3

5

7

19

21

23

4

9

2

20

25

18

40

33

38

24

17

22

35

37

39

19

21

23

36

41

34

20

25

18

Полученная матрица имеет уже размер 6x6. Вычислим сумму ее столбцов:
» sum(B)

 ans =
126     126     126     126     126     126
Любопытно, что она одинакова для всех столбцов. А для вычисления суммы стро! используем команду
» sum(B.') 

ans =
78     78     78    174     174     174
Здесь запись В.' означает транспонирование матрицы В, т. е. замену строк столб цами. На этот раз сумма оказалась разной. Это отвергает изначально возникши предположение, что матрица В тоже является магической. Для истинно магической матрицы суммы столбцов и строк должны быть одинаковыми:
» D=magic(6)
D=

35

1

6

26

19

24

3

32

7

21

23

25

31

9

2

22

27

20

8

28

33

17

10

15

30

5

34

12

14

16

4

36

29

13

18

11

» sum(D)
ans=
111 111 111 111 111 111 

» sum(D.') 

ans=
111 111 111 111 111 111
Более того, для магической матрицы одинаковой является и сумма элементов по основным диагоналям (главной диагонали и главной антидиагонали).