Раздел: Документация
0 ... 31 32 33 34 35 36 37 ... 365 rside.txt, и записать результат в файл sol.txt. Матрица записана в файле построчно, элементы в строке отделены пробелом, вектор правой части записан в столбик, как показано на рис. 2.8.
Рис. 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 и без него.
Рис. 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 =
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
|