8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 32 33 34 35 36 37 38 ... 365

Обратной задачей к конструированию блочных матриц является выделение блоков.

Выделение блоков

Выделение блоков матриц осуществляется индексацией при помощи двоеточия, которая уже использовалась в предыдущих разделах для выделения блоков из векторов. Введите матрицу

(\

2

0

4

10

12

р =

0

11

10

I9 2 3 5)

затем выделите очерченный блок, задав номера строк и столбцов при помощи двоеточия:

» Р1 = Р(2:3,2:3) Р1 =

1012

1110

Для выделения из матрицы столбца или строки (т. е. массива, у которого один из размеров равен единице) следует в качестве одного из индексов использовать номер столбца или строки матрицы, а другой индекс заменить на двоеточие без указания пределов. Например, запишите вторую строку Р в вектор р

» р = Р(2, :)

Р = 4 10 12 5

При выделении блока до конца матрицы можно не указывать ее размеры, а использовать end:

» р = Р{2, 2:end)

Р = 10 12 5

Удаление строк и столбцов

Как уже было сказано, в MATLAB парные квадратные скобки [ ] обозначают пустой массив, который, в частности, позволяет удалять строки и


столбцы матрицы. Для удаления строки следует присвоить ей пустой массив. Удалите, например, первую строку квадратной матрицы:

» м = [2 0 3

114

6 1 3]; » М{1, :) = []; » м К =

114

6 13

Обратите внимание на соответствующее изменение размеров массива, которое можно посмотреть в окне Workspace или проверить при помощи size. Аналогичным образом удаляются и столбцы. Для удаления нескольких идущих подряд столбцов (или строк) им нужно присвоить пустой массив. Удалите второй и третий столбец в м

» м{:, 2:3) = [ ] м =

1

6

Индексация существенно экономит время при вводе матриц, имеющих определенную структуру.

Заполнение матриц при помощи индексации

Выше было описано несколько способов ввода матриц в MATLAB, в том числе считывание из файла и использование редактора массивов. Однако если матрица обладает простой структурой, то бывает проще сгенерировать ее, чем вводить. Рассмотрим пример такой матрицы:

1

1

1

1

1

0

0

0

0

0

Т =

0

0

0

0

0

0

0

0

0

0

0

-1

-1

Генерация матрицы Т осуществляется в три этапа:

\. Создание массива т размера пять на пять, состоящего из нулей.

2. Заполнение первой строки единицами.


3. Заполнение части последней строки минус единицами до последнего элемента.

Соответствующие команды MATLAB приведены ниже (они записаны в три колонки с целью экономии места, но набирать их надо последовательно). Команды не завершаются точкой с запятой для вывода промежуточных результатов в командное окно с целью слежения за процессом формирования матрицы

» А(1:5, 1:5) =0» А(1, :) = 1» A(end, 3:end) = -1

А =А =А -

000001111111111

000000000000000

000000000000000

000000000000000

000000000000-1-1-1

Создание некоторых специальных матриц в MATLAB осуществляется при помощи встроенных функций.

Создание матриц специального вида

Заполнение прямоугольной матрицы нулями производится встроенной функцией zeros, аргументами которой являются число строк и столбцов матрицы:

» А = zeros(3, б) А =

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

Один аргумент функции zeros приводит к образованию квадратной матрицы заданного размера:

» А = zeros(3) А =

0 0 0

0 0 0

ооо

Единичная матрица инициализируется при помощи функции eye:

» I = еуе(4)



0 ... 32 33 34 35 36 37 38 ... 365