- •§ 2.2. Командное окно системы matlab
- •§ 2.3. Рабочее пространство системы matlab
- •§ 2.4. Скаляры и массивы. Индексированные переменные
- •§ 2.5. Форматы представления вещественных чисел
- •§ 2.6. Арифметические выражения
- •2.6.1. Некоторая специфика использования вещественных данных
- •2.6.2. Некоторая специфика использования комплексных данных
- •2.6.3. Некоторые приемы работы с матрицами и векторами
- •2.6.4. Некоторые специфика выполнения арифметических и логических операций.
- •§ 2.7. Элементарные математические функции
- •Часть 2. Визуализация результатов вычислений
- •§ 2.8. Особенности графической подсистемы matlab
- •§ 2.9. Построение графиков функций одной переменной
- •2.9.1. Простые графики в декартовой системе координат.
- •2.9.2. Визуализация нескольких графиков.
- •2.9.3. Функция fplot.
- •2.9.4. Построение графиков в логарифмическом и полулогарифмическом масштабах.
- •2.9.5. Построение графиков в полярных координатах.
- •§ 2.10. Оформление графиков и графических окон
- •2.10.1. Выбор свойств линий.
- •2.10.2. Оформление осей координат.
- •2.10.3. Добавление надписей, заголовков и координатной сетки.
- •§ 2.11. Средства управления в графическом окне
- •§ 2.12. Общее знакомство с трехмерной графикой в matlab
- •2.12.1. Общий алгоритм визуализации функций двух переменных.
- •2.12.2. Построение трехмерных линий.
- •2.12.3. Построение поверхностей.
- •2.12.4. Задание дополнительных параметров трехмерных графиков.
- •2.12.5. Построение линий уровня.
- •2.12.6. Построение траектории точки, движущейся в пространстве.
- •2.12.7. Интерактивное редактирование графиков.
- •Часть 3. Вычисления с действительными и комплексными массивами чисел
- •§ 2.13. Операции отношения и логические операции над числами
- •2.13.1. Операции отношения.
- •2.13.2. Логические операции.
- •2.13.3. Приоритет операций.
- •§ 2.14. Формирование одномерных числовых массивов
- •2.14.1. Задание одномерных массивов и доступ к их элементам.
- •2.14.2. Об ускорении операций задания массива.
- •2.14.3. Об использовании операции формирования диапазона.
- •§ 2.15. Матрицы и векторы. Двумерные массивы чисел
- •2.15.1. Создание матриц и векторов.
- •2.15.2. Доступ к отдельным фрагментам матриц.
- •2.15.3. Удаление строк и столбцов матрицы.
- •2.15.4. Использование функций перестановки частей матриц.
- •2.15.5. Определение размеров и размерностей массивов.
- •2.15.6. Использование операций индексации.
- •2.15.7. Изменение размеров массива.
- •2.15.8. Специальные функции формирования массивов.
- •§ 2.16. Вычисления с массивами
- •2.16.1. Поэлементные и групповые операции над массивами.
- •2.16.2. Решение некоторых типовых задач линейной алгебры и аналитической геометрии.
- •2.16.3. Применение операций отношения и логических операций к массивам.
- •2.16.4. Некоторые функции для работы с массивами.
- •Часть 4. Стандартные средства решения некоторых типовых задач линейной алгебры и математического анализа
- •§ 2.17. Решение систем линейных алгебраических уравнений
- •§ 2.18. Решение некоторых задач линейной алгебры. Матричные функции
- •§ 2.19. Разреженные матрицы
- •§ 2.20. Решение нелинейных уравнений
- •§ 2.21. Поиск минимального значения функции
- •§ 2.22. Численное интегрирование
- •2.22.1. Использование метода трапеций.
- •2.22.2. Использование методов Симпсона и Гаусса-Лобатто.
- •2.22.3. Вычисление двойных интегралов.
- •§ 2.23. Операции над полиномами
- •2.23.1. Вычисление значения полинома.
- •2.23.2. Вычисление корней полинома.
- •2.23.3. Умножение и деление полиномов.
- •2.23.4. Дифференцирование и интегрирование полиномов.
- •§ 2.24. Интерполяция и аппроксимация данных
- •2.24.1. Полиномиальная аппроксимация.
- •2.24.2. Интерполяция сплайнами.
- •Часть 5. Символьные вычисления
- •§ 2.25. Создание символьных переменных, выражений и матриц
- •2.25.1. Создание символьных переменных.
- •2.25.2. Создание символьных выражений.
- •2.25.3. Создание символьных матриц.
- •§ 2.26. Символьные вычисления
- •2.26.1. Символьное дифференцирование.
- •2.26.2. Вычисление пределов.
- •2.26.3. Символьное интегрирование.
- •2.26.3. Вычисление суммы ряда. Разложение функций в ряды.
- •2.26.4. Упрощение выражений. Подстановки.
- •2.26.5. Управление точностью вычислений.
- •2.26.6. Операции над векторами. Операции над матрицами. Некоторые операции линейной алгебры.
- •2.26.7. Решение уравнений и систем уравнений.
- •§ 2.27. Визуализация результатов символьных вычислений
- •2.27.1. Построение двумерных графиков.
- •2.27.2. Построение трехмерных графиков.
- •Часть 6. Основы программирования на m-языке
- •§ 2.28. Основные понятия программирования в системе matlab
- •2.28.1. Назначение языка программирования matlab.
- •2.28.2. Основные средства программирования.
- •2.28.3. Основные типы данных.
- •2.28.4. Виды программирования.
- •2.28.5. Двойственность операторов, команд и функций.
- •2.28.6. Некоторые ограничения.
- •§ 2.29. Создание и использование m-файлов
- •2.29.1. Понятие об m-файлах.
- •2.29.2. Типы m-файлов.
- •2.29.3. Создание файл-программ.
- •2.29.4. Создание файл-функций.
- •2.29.5. Глобализация переменных и функций.
- •2.29.6. Синтаксический контроль программ.
- •§ 2.30. Управляющие структуры
- •2.30.1. Понятие об управляющих структурах.
- •2.30.2. Операторы цикла.
- •2.30.3. Операторы ветвления.
- •2.30.4. Прочие операторы.
- •§ 2.31. Работа с файлами
- •2.31.1. Общие замечания.
- •2.31.2. Подготовка файла к работе.
- •2.31.3. Завершение работы с файлами.
- •2.31.4. Контроль за исчерпанием данных.
- •2.31.5. Чтение из текстового файла.
- •2.31.6. Анализ ошибок в файловых операциях.
- •§ 2.32. Форматный ввод-вывод данных
- •2.32.1. Форматные преобразования (sprintf, sscanf).
- •2.32.2. Форматные преобразования при работе с файлами (fprintf, fscanf).
- •§ 2.33. Рекурсивные файл-функции. Производительность файл-функций
- •2.33.1. Понятие о рекурсивных файл-функциях.
- •2.33.2. Оценка производительности файл-функции.
- •§ 2.34. Файл-функции с переменным числом входных параметров и выходных значений
- •§ 2.35. Диалоговые программы
- •2.35.1. Ввод числовых и символьных данных.
- •2.35.2. Вывод результатов вычислений.
- •§ 2.36. Анимационные эффекты
- •§ 2.37. Контроль входных и выходных параметров файл-функции
- •§ 2.38. Отладка программы
- •2.38.1. Понятие о способах отладки программы.
- •2.38.2. Рекомендации по созданию и отладке программ.
- •Часть 7. Создание программ с визуальным интерфейсом
- •§ 2.39. Понятие о графическом интерфейсе пользователя (gui)
- •2.39.1. Предварительные замечания.
- •2.39.2. Основные команды для создания gui.
- •§ 2.40. Общие сведения о визуальной среде guide
- •§ 2.41. Программирование событий в matlab
- •§ 2.42. Свойства основных компонентов в matlab
- •§ 2.43. Диалоговые окна в matlab
- •§ 2.44. Динамическое создание компонентов
- •§ 2.45. Создание меню
- •§ 2.46. Некоторые рекомендации по созданию приложений с графическим интерфейсом пользователя
§ 2.31. Работа с файлами
2.31.1. Общие замечания.
Файлы, как правило, представляют собой именованные области внешней (дисковой) памяти, с которыми программы обмениваются информацией. Потребность в такого рода обменах возникает в самых разнообразных ситуациях. Так, например, к услугам внешней памяти приходится прибегать, записывая туда очередную порцию накопленных данных, когда объем оперативной памяти может быть недостаточен для хранения нужной информации. В другой ситуации приложение может воспользоваться своими же данными, записанными ранее на диск или полученнными в результате работы других программ. Следует отметить, что поставщиками или потребителями данных, с которыми программа, созданная в системе MATLAB, может вступать в контакт могут быть не только дисковые файлы, но и файлы-устройства (дисплей, принтер, плоттер, сканер, клавиатура, каналы связи и т.д.). Тем не менее, далее будем рассматривать в основном работу с дисковыми файлами, хотя, в целом, соответствующее обслуживание файлов-устройств осуществляется по аналогичной схеме.
Отмечая ключевые аспекты процесса обмена данными, следует указать, что работа с файлами ограничивается, в основном, тремя-четырьмя операциями:
– выделение ресурсов и приведение файла в состояние готовности к обмену данными (именно это скрывается за термином открыть файл);
– чтение (ввод из файла) или запись (вывод в файл) очередной порции данных;
– возврат выделенных ресурсов и завершение неоконченных операций (этому соответствует термин закрыть файл).
К числу наиболее значимых аспектов обмена информации необходимо отнести формат представления данных на внешнем носителе. В своем подавляющем большинстве почти все системы программирования (и система MATLAB в этом смысле никак не исключение) используют два формата данных – текстовые и бинарные (двоичные).
Текстовые или символьные данные состоят из строк, похожих на те, которые пользователи набирают при вводе с клавиатуры или видят на экране монитора. Для текстовых данных характерна переменная длина строки, завершающейся невидимым признаком конца. Кроме того, числовые данные в строках представлены в виде, ествественном для человека. По сути, это означает, что при вводе символьных данных служебные программы преобразуют числовую информацию во внутренний формат компьютера, а при выводе работают другие сервисные программы, которые, напротив, преобразуют данные из машинного формата в приемлимый для пользователя вид.
В силу переменной длины строк обмен с текстовыми наборами данных приходится проводить последовательно – строка за строкой. В самом деле, для того, чтобы определить, где в наборе данных размещается строка с заданным номером, пришлось бы перебирать байт за байтом все символы предшествующих строк.
Как правило, обмен информации, хранящейся
в символьном наборе данных, существенно
превышает длину той же информации в
машинном формате (указанное относится
в основном к данным числового типа).
Так, например, число
в символьном представлении занимает
16 байт, тогда как соответствующий
машинный эквивалент с таким же количеством
значащих цифр требует 8 байт.
В свете вышеизложенного текстовое представление данных имеет все же целый ряд недостатков, среди которых, в частности, меньшая эффективность по объему использованной памяти, потребность в дополнительных затратах на преобразования между машинным и символьным форматами, возможность исключительно последовательного обмена между программой и внешним носителем. Тем не менее, очевидно, что главным преимуществом текстовых данных является ественность их восприятия человеком, причем представление указанных данных, по существу, не зависит от конкретного компьютера или операционной системы (это важно при передаче данных между различными вычислительными платформами).
Информация, которая хранится в бинарных наборах данных может иметь совершенно разную природу. Обмен информацией с бинарными наборами данных не требует каких-либо преобразований. В этой связи он выполняется быстрее и связан с меньшими объемами памяти. В отличие от текстовых файлов, обмен данных с бинарными файлами выполняется порциями заданной длины, поэтому в зависимости от природы информации, хранящейся в бинарных файлах, здесь имеется возможность прямого доступа к нужной порции данных. В частности, если файл предназначен для временного хранения информации, используемой лишь программой, и его содержимое не будет переноситься на компьютеры другого типа, предпочтения целесообразно отдавать бинарным файлам.
