"MATLAB 7 (Наиболее полное руководство в подлиннике)" - читать интересную книгу автора (Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н.)

-¦9.0000 9.0000 2.5000
'4^1
й =
;Z> = (-9 9).
Последний оператор можно заменить на эквивалентный м = [[S; b] [а,-
2.5]].
MATLAB позволяет конструировать блочно-диагональные матрицы с помощью функции bikdiag. Рассмотрим пример:
» R - [1 2,- 3 4];
» Q = [5 6 7; 8 9 10; 11 12 13];
» Т = [-3 5; 6 7] ;
Z = blkdiag(R. Q. Т)
2 =
12 0 0 0 0 0
3 4 0 0 0 0 0
0 0 5 6 7 00
о о а 9 ю о о
0 0 11 12 13 0 0 0 0 0 0 0-35 0 0 0 0 0 6 7
Блоки, используемые функцией bikdiag, не обязательно должны быть квадратными и одного размера.
Глава 2. Работа с массивами
91
Обратной задачей к конструированию блочных матриц является выделение блоков.
Выделение блоков
Выделение блоков матриц осуществляется индексацией при помощи двоеточия, которая уже использовалась в предыдущих разделах для выделения блоков из векторов. Введите матрицу
Р =
4 0 I9 2 0 21 5 5 5J
10 12 11 10
2 3
затем выделите очерченный блок, задав номера строк и столбцов при помощи двоеточия:
» Р1 = Р(2:3,2:3)
Р1 =
10 12
11 10
Для выделения из матрицы столбца или строки (т. е. массива, у которого один из размеров равен единице) следует в качестве одного из индексов использовать номер столбца или строки матрицы, а другой индекс заменить на двоеточие без указания пределов. Например, запишите вторую строку Р в вектор р
» р
р = 4 10 12 5
Р(2, :)

При выделении блока до конца матрицы можно не указывать ее размеры, а использовать end:
» р = Р(2, 2:end)
р ¦=
10 12 5
Удаление строк и столбцов
Как уже было сказано, в MATLAB парные квадратные скобки [ ] обозначают пустой массив, который, в частности, позволяет удалять строки и
92 Часть t. Основы работы В MATLAB
столбцы матрицы. Для удаления строки следует присвоить ей пустой массив. Удалите, например, первую строку квадратной матрицы;
» М = [2 0 3
1 1 4
6 1 3]; » М(1, :) = []; » М
м = 114
6 13