Mоделирование процессов и систем в Matlab (966709), страница 24
Текст из файла (страница 24)
Однако следует помнить, что нельзя пользоваться файлами-сценариями, то есть готовыми 127 Использование МАТсАВ при оформлении текстовых документов М-программами, а также процедурами и функциями, доступными лишь при работе с файлами-сценариями (например„процедурами создания меню и т. п.). Указанное ограничение удастся обойти, если вы воспользуетесь командой Вппй МАг 1АВ то агент(Вывести МАТЕАВ на передний план) меню Мо1еЬоо1с. В этом случае командное окно МАТЕАВ расположится поверх других окон, и в нем можно будет осуществлять любые операции МАТЕАВ. Естественно, результаты выполнения операций не будут автоматически записываться в текст М-книги.
Они будут появляться, как обычно, в соответствующих окнах МАТ1.АВ. Вы можете перенести текст и изображения в М-книгу с помощью тех же операций, которые используются при перенесении объектов из одного окна в другое. Изменение параметров вывода результатов В меню Мо(еЬооЬ есть команда МотеЬооЬ Ороопз (Параметры ХотеЪоок), которая позволяет устанавливать некоторые параметры оформления результатов в М-книге по усмотрению пользователя. Если эту команду актнвизироваты на экране появится одноименное диалоговое окно, представленное на рис.
З.З. Рис. 3.3. Диалоговое окно Ко1еЬоок Орцопл Данное окно позволяет устанавливать такие параметры: О формат вывода чисел в ЪЧогг1 — в раскрывающийся список в области Мшпепс Гоппз( (Формат чисел); О плотность вывода строк — переключатели свозе (Редко) и Согпрзст (Плотно), находящиеся в области Мигпенс Роппат (Формат чисел); О размеры выведенных в окно Жоп1 изображений — область Вйиге Ороопз (Па- раметры изображения); О возможность вывода изображений, получаемых при работе МАТ1.АВ, в текст М-книги — флажок ЕпгЬед Вйигез1п М-ЬооМ (Встраивать изображения в М-книгу); О возможность использования при выводе изображений в М-книгу 16 или 256 цве- тов — флажок Ове 16-Со(ог ЯВщез (Использовать 16-цветные изображения). После щелчка на кнопке ОК эти установки вступят в силу.
128 Урок 3 ° МАТ~АЗ и другие приложения Использование файлов данных в МАП.АВ Система МАТ?АВ располагает набором специальных функций для работы с файлами различных форматов и типов, например с файлами программ, написанных на языке С. или с МАТ-файлами„представляющими собой запись состояния рабочего пространства МАТЮКАВ. Часто возникает потребность в использовании данных не из МАТ-файла и не набранных с клавиатуры, а из уже сформированного файла, запись которого производилась самыми разными способами и программными средствами. Вам может также понадобиться сохранить результаты вычислений в файлах заранее оговоренного формата, предназначенных для использования в составе иных программных средств.
Такие задачи решаются путем использования файлов данных, типы которых являются общими для всех программных средств. Это могут быть бинарные либо текстовые файлы. Бинарные файлы предназначены для хранения произвольных данных в виде потока байтов. Основные операции, выполняемые с такими файлами„— зто запись и считывание заданного количества байтов информации. В отличие от бинарных, текстовые файлы содержат записи, трактуемые как символы в определенной кодировке, включая набор управляющих символов: возврата каретки, перевода строки, конца файла.
Открытие и закрытие файлов Независимо от типа файла данных перед началом работы его нужно открыть по- средством специальной функции торепт <ипентификатор файла> - Горел('<икп фаппа>'. '<флаг>') Здесь <идентификатор файла> — имя указателя на файл, которое будет использоваться при осуществлении операций чтения-записи; <иия файла> — имя файла, под которым он записан (или будет записан) на внешний носитель; «флаг> — параметр, называемый флагом открытия файла и несущий информацию о способе работы с файлом. Флаг может принимать следующие символьные значения: О г — только для чтения; О и — только для записи (предыдущее содержимое теряется и создается новый файл); О и - — удаление содержимого существующего файла или создание нового файла и открытие его для записи и чтения; О г+ — чтение и запись одновременно; О а — добавление в конец файла; О а+ — создание и открытие нового файла или открытие существующего файла для записи, чтения и добавления записи в конец файла.
129 .. Использование файлов данных в МАТ(А8 (с)оке(<идентификатор файла>) Эапись и чтение бинарных файлов Запись информации в бинарный файл осуществляется посредством функции Еыгт— ге, а чтение информации из бинарного файла — посредством функции Егеат): йтгт1е(кидектификатор файла>. А,'ргестгдоп') Здесь А — числовой вектор (или матрица), элементы которого необходимо записать в файл, 'ргестзтоп' — символьный параметр, указывающий, сколько памяти отводится под запись отдельного числа. В МАТ) АВ для записи вещественных чисел, под которую отводится 8 байт (или 64 бита), используется тип т)оиЬ) е.
Поэтому при записи таких данных в бинарный файл нужно указать в качестве параметра 'ргестзтоп' текстовую строку '7!оа164'. Следует заметить, что считывание значений элементов некоторой матрицы происходит по столбцам, то есть сначала считываются элементы первого столбца матрицы, затем — второпт и т. л.
В таком же порядке располагаются записываемые элементы в бинарном файле. Рассмотрим пример записи значений элементов вектора х размером 1х5 и квадратной матрицы у размером Зх2. »Х 1т5 »х= 1 2 3 » у 16 7;8 9:10 1Ц у" 6 7 8 9 10 11 4 5 в бинарный файл Ьвг йа1.Ь)п: Е1 - (орел('1»1 Оас.отп' „'иЬ'); (игтте(Е1,х.'т)ов(64'); йтгттсе(Е1 у Чяоатбд'). (с)озе(Е1)т Теперь осуществим чтение данных из записанного файла Для этого откроем файл с флагом гЬ и применим функцию Егеао, предназначенную для чтения информа- ции из бинарного файла.
Обращение к ней осуществляется в такой форме: (А.соопг) - (гедд(<идентификатор файла>. (в,п).'ргестзтоп') Здесь А — имя числовой матрицы, элементы которой принимают считанные из файла значения, н — число строк этой матрицы, и — число ее столбцов, соыпс — количество действительно считанных элементов из файла данных, 'ргестзтоп'— символьный параметр, указывающий, сколько памяти отводится под запись в матрице А отдельного числа. Для записи в МАТ1.АВ данных из бинарного файла , К указанным символам следует добавить символ Ь, предназначенный для открытия файла в бинарном режиме, и символ Ь вЂ” для открытия файла в текстовом режиме. Если файл данных больше не используется для чтения илн записи, его следует закрыть, используя функцию Ес) одет 1ЗО Урок 3 ° МАТОВ и другие приложеиии » Г2 Горек('тзт бас.Ыи'.'гь'); » [91.сЦ " Ггеаб(62. [1.
15]. ' Г(оа(64') » Гс)азе(Г2); Получаем: 91 1 2 3 4 5 б 8 10 7 9 П с1 П Как видим, реально было считано 11 элементов. Порядок их расположения в за- писанном файле данных ясен из полученного вектора У1. Можно убедиться, что элементы исходной матрицы у были считаны при записи по столбцам.
Теперь считаем эти данные в вектор и в матрицу тех же размеров, которые были использованы при записи: » Г2 Горев('тзт бас.Ып'.'гЬ'): » Р1,с2] Ггеаб(Г2. [1,5]. ' Г) аа(64') » [У1.43] Ггеаб(Г2.[3.2].'Г)оаМ4') » Гс) озе(Г2): Х1 с2- 71 б з 10 сЗ- 1 2 3 4 5 5 7 9 11 б результат считывания полностью совпадает с исходными данными. Наконец, попробуем считать матрицу у в матрицу у2, имеющую заведомо большие размеры (4х37: » Г2 Горек( тзт бат.Ыи . гЬ )." » [Х2.04] Ггем)(ГХ, [1. 5].
'() оатб(') » [)2.сб] егер(Г2,[4.3].'Г)оа(64') » Гс)озе(Г2); Х2 1 2 3 4 5 с4- 5 следует указать в качестве параметра 'ргес)31оо' текстовую строку 'Г)оа164'. Параметр <идентификатор Файла> является символьной строкой, содержащей имя бинарного файла, из которого считывается информация. При считывании информации из бинарного файла нужно иметь в виду следующие особенности: О считывание начинается с того места бинарного файла, где находится указатель; О при первом считывании только что открытого файла данных указатель расположен в самом начале бинарного файла, перед первым его элементом; О после очередного считывания с помощью функции Ггеа() указатель перемещается по файлу данных и устанавливается после последнего считанного элемента.
Приведем несколько примеров. В записанном нами файле 231 дат.Ыо содержится 11 чисел типа йиЫе. Сначала считаем его в единственный вектор длиной 15 элементов: Использование файлов данных в ИДУ[ДО У2- б 9 В 11 10 0 7 0 с5- б Результат показывает, что заполнение новых матриц, последовательно считывае- мыми элементами бинарного файла, осуществляется по столбцам. Недостающие элементы матриц заполняются нулями.
~ ПРИМЕЧАНИЕ Правильное считывание данных из бинарного файла возиожно только при условии, что заранее извести«ь в каком формате записаны данные в этот файл. Например, если считать данные в формате Р1оа(32, то получим следующее: » Г2 Горел('Сзт Оат.Ь«п'.'гЬ'): » [Х2,сЯ) - Угеад(Г2.[1,5).' Поат32'] » [У2,сб) Угеаб(Г2,[4.31,'Г)оат32') » Гс)озе(Г2): 12 - 0 1.В750 с4- 5 У2 2.