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

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

rside.txt, и записать результат в файл sol.txt. Матрица записана в файле построчно, элементы в строке отделены пробелом, вектор правой части записан в столбик, как показано на рис. 2.8.

файл matr txt

файл rside txt

345 0.11 ».

-0 25

725

1.08 5 97 »

0.09

091

-041 1.06

5.84

4.23

Рис. 2.8. Файлы с матрицей и вектором правой части системы

Подготовьте файлы с данными, например, в стандартной программе Windows Блокнот (Notepad). Скопируйте файлы matr.txt, rside.txt в подкаталог work основного каталога MATLAB. Для считывания из файла используйте команду load, для записи — save. Применив load и save для сохранения и считывания переменных рабочей среды описано в главе 1, однако при работе с файлами данных используется функциональный способ вызова этих команд с выходными аргументами;

» А = load(matr.txt1); » b = load(rside.txt); » x = AYb;

» save 1 sol.txt x -ascii

Параметр -ascii означает запись в текстовом формате. После выполнения данных команд в каталоге work создастся файл sol.txt, в котором в столбик будет записано решение системы. Посмотреть содержимое файла можно, используя любой текстовый редактор. Для записи результата в файл с двойной точностью следует использовать команду save sol.txt х -ascii -double. На рис. 2.9 приведено содержимое файла sol.txt в случае использования команды save с параметром -double и без него.

3 5756116е+000

3 5756115823110211е+ 000

-1.4288319е+000

-1.4288318551740618е+000

2 8680803е+000

2.8680803204263228е+ 000

save sol.txt х -ftscil

save sol.txt х - ascii -double

Рис. 2.9. Содержимое файла sol.txt


Аналогично можно записать матрицу в текстовый файл. Запись, например, матрицы А, хранящейся в массиве а, в файл matrA.txt осуществляется командой save matrA.txt A -ascii. Запись в файл и считывание из файла осуществляются по строкам.

Блочные матрицы

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

Конструирование блочных матриц

Введите матрицы

А =

-1 4 -1 4

; в =

2 О О 5

С =

-3

-3"

D =

9] 10

и создайте из них блочную матрицу

(А ! В}

C~j~D V. 1 J

учитывая, что матрица К состоит из двух строк, в первой строке матрицы А и В, а во второй — С и D:

» К = [А В; С D] К =

-14 2 0

-14 0 5

3-389

-3 3 1 10

Блочная матрица получена. Можно было поступить и по-другому, а именно, считать, что матрица К состоит из двух столбцов, в первом — матрицы Л и С, а во втором — В и D. Как бы тогда следовало записать команду для создания блочной матрицы? Проверьте себя

» К = [ [А; С] [В; D] ]


Вот еще один пример для проверки знаний о работе с массивами в MATLAB. Требуется составить блочную матрицу

М =

б1 2.5

где

S =

f2

: a =

0

3

5

V

J

\ J

b = (-9 9).

Решение этой задачи следующее:

» S = [2 0; 0 3] ; » а = [4; 5] ; » b = [-9 9]; » М = [S a; b 2.5] М =

2.0000 О 4.0000

03.0000 5.0000 -9.0000 9.0000 2.5000

Последний оператор можно заменить на эквивалентный м = [[S; ь] [а,-

2.5] ].

MATLAB позволяет конструировать блочно-диагональные матрицы с помощью функции blkdiag. Рассмотрим пример:

» R = [1 2; 3 4] ;

» Q = [5 6 7; 8 9 10; 11 12 13];

» Т = [-3 5; 6 7] ;

Z = blkdiag(R, Q, Т)

Z =

12 0 0 0 0 0 3 4 0 0 0 0 0 0 0 5 6 7 0 0

О 0 8 9 10 0 0 0 0 11 12 13 0 0 0 0 0 0 0-35 0 0 0 0 0 6 7

Блоки, используемые функцией blkdiag, не обязательно должны быть квадратными и одного размера.



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