И другие программы этой серии
Конкатенация (объединение) матриц
Описанный способ задания матриц позволяет выполнить операцию конкатена
ции – объединения малых матриц в большую матрицу. Например, создадим вна
чале магическую матрицу размера 3?3:
>> A=magic(3)
A=
8
1
3
5
4
9
Это создает матрицу:
CM =
1.0000 + 5.0000i
3.0000 + 7.0000i
2.0000 + 6.0000i
4.0000 + 8.0000i
Разумеется, возможно разделение элементов не только пробелами, но и запя
тыми.
6
7
2
1.5.3. Понятие о матричных операциях
и магические матрицы
Наряду с операциями над отдельными элементами матриц и векторов система
позволяет производить операции умножения, деления и возведения в степень
сразу над всеми элементами, то есть над массивами. Для этого перед знаком опе
рации ставится точка. Например, оператор * означает умножение для векторов
или матриц, а оператор .* – поэлементное умножение всех элементов массива.
Так, если M – матрица, то M.*2 даст матрицу, все элементы которой умножены на
скаляр – число 2. Впрочем, для умножения матрицы на скаляр оба выражения –
M*2 и M.*2 – оказываются эквивалентными.
Имеется также ряд особых функций для задания векторов и матриц. Напри
мер, функция magic(n) задает магическую матрицу размера n?n, у которой сум
ма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу:
>> M=magic(4)
M=
16
2
3
13
5
11
10
8
9
7
6
12
4
14
15
1
>> sum(M)
ans = 34 34 34
34
>> sum(M’)
ans = 34 34 34 34
>> sum(diag(M))
ans = 34
>> M(1,2)+M(2,2)+M(3,2)+M(4,2)
ans = 34
Теперь можно построить матрицу, содержащую четыре матрицы:
>> B=[A A+16;A+32 A+16]
B=
8
1
6
3
5
7
4
9
2
40
33
38
35
37
39
36
41
34
>> sum(B)
ans = 126
24
19
20
24
19
20
17
21
25
17
21
25
22
23
18
22
23
18
Полученная матрица имеет уже размер 6?6. Вычислим сумму ее столбцов:
126
126
126
126
126
Любопытно, что она одинакова для всех столбцов. А для вычисления суммы
строк используем команду
>> sum(B.\')
ans = 78 78 78
174
174 174
Здесь запись B.\' означает транспонирование матрицы B, то есть замену строк
столбцами.