Объединение малых матриц в большую. Удаление столбцов и строк матриц.
Описанный способ задания матриц позволяет выполнить операцию конкатенации – объединения малых матриц в большую. Например, создадим вначале магическую матрицу размера 3x3:
>
>
A
=
magic(
3
)
A
=
8
1
6
3
5
7
4
9
2
Теперь можно построить матрицу, содержащую четыре матрицы:
>
>
B
-
[A A
+
16
:A
+
32
A
+
16
]
B
=
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
Более того, для магической матрицы одинаковой является и сумма элементов по основным диагоналям (главной диагонали и главной антидиагонали).
Удаление столбцов и строк матриц
Для формирования матриц и выполнения ряда матричных операций возникает необходимость удаления отдельных столбцов и строк матрицы. Для этого используются пустые квадратные скобки [ ]. Проделаем это с матрицей М:
>
>
M
=
[
1
2
3
;
4
5
6
;
7
8
9
]
M
=
1
2
3
4
5
6
7
8
9
Удалим второй столбец используя оператор: (двоеточие):
>
>
M(:.
2
)
=
[ ]
1
3
4
6
7
9
А теперь, используя оператор: (двоеточие), удалим вторую строку:
>
>
M(
2
.:)
=
[ ]
M
=
1
3
7
9