- •Введение
- •Лабораторная работа ип1 Знакомство с Matlab
- •1. Рабочая среда Matlab
- •2. Данные Matlab
- •Типы данных
- •Числовые константы
- •Символьные константы
- •Переменные
- •3. Выражения
- •3.1. Арифметические выражения
- •3.2. Логические выражения
- •3.3. Порядок вычисления выражений
- •4. Сообщения об ошибках и исправление ошибок
- •5. Завершение вычислений
- •6. Завершение работы с системой
- •7. Резюме
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •Лабораторная работа ип2 работа с матрицами в matlab
- •1. Общие сведения
- •2. Одномерные массивы – векторы
- •3. Двумерные массивы – матрицы
- •4. Использование двоеточия
- •4.1. Автозаполнение
- •4.2. Индексация
- •5. Поэлементные и матричные операции
- •6. Стандартные функции для работы с матрицами
- •7. Логическое индексирование
- •8. Контрольные вопросы
- •9. Индивидуальные задания
- •10. Упражнения
- •2. Диалоговый ввод/вывод
- •3. Управление последовательностью исполнения операторов
- •3.1. Оператор условия if
- •3.2. Оператор переключения
- •3.3. Оператор цикла с определенным числом повторений
- •3.4. Оператор цикла с неопределенным числом повторений
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип4 визуализация данных в matlab
- •1. Общие сведения
- •2. Построение таблицы значений функции
- •3. Двумерная графика
- •3.1. Общие правила построения графиков
- •3.2. Оформление графиков
- •3.3. Построение графиков
- •3.4. Управление свойствами графиков
- •4. Трехмерная графика
- •4.1. Общие принципы построения трехмерных графиков
- •4.2. Построение трехмерных графиков
- •4.3. Управление свойствами трехмерных графиков
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип5 файл-функции
- •2. Описание m-функции
- •3. Обращение к m-функции
- •4. Параметры-функции
- •5. Разновидности m-функций
- •5.1. Подфункции
- •5.2. Вложенные функции
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •2. Аппроксимация
- •2.1. Моделирование полиномом по методу
- •2.2. Аппроксимация произвольной функцией
- •3. Интерполяция
- •3.1. Кусочная интерполяция
- •3.2. Кубические сплайны
- •3.3. Интерполяция произвольной нелинейной функцией
- •4. Контрольные вопросы
- •5. Индивидуальные задания
- •Лабораторная работа ип7 Вычисление функций разложением в ряд
- •1. Общие сведения
- •2. Индивидуальное задание
- •Лабораторная работа ип8 Решение нелинейных уравнений в среде Matlab
- •1. Общие сведения
- •2. Поиск корней полиномов
- •3. Решение одного нелинейного уравнения
- •4. Решение систем нелинейных уравнений
- •5. Контрольные вопросы
- •6. Индивидуальные задания
- •Лабораторная работа ип9 обмен данными с текстовым файлом
- •1. Общие сведения
- •2. Открытие файла
- •3. Запись в текстовый файл
- •3.1. Запись строковых значений
- •3.2. Запись числовых значений
- •4. Чтение из текстового файла
- •4.1. Последовательное чтение строк
- •4.2. Последовательное чтение нескольких символов
- •4.3. Чтение чисел из текстового файла
- •4.4. Альтернативный доступ к текстовому файлу
- •5. Закрытие файла
- •6. Контрольные вопросы
- •7. Индивидуальные задания
- •Заключение
- •Список рекомендуемой литературы
- •Программирование в matlab
- •428015 Чебоксары, Московский просп., 15
2. Открытие файла
Прежде чем выполнять обмен данными с внешним файлом необходимо установить связь между ним и программой – открыть файл. Для открытия существующего или создания нового файла используется функция fopen
ФайловыйИдентификатор=fopen(ИмяФайла, РежимДоступа)
Первый входной параметр – имя открываемого файла может быть задано текстовой константой или строковой переменной. Второй входной аргумент определяет режим доступа к файлу и может принимать следующие значения (символ t указывает на то, что файл текстовый):
'rt' – открываемый текстовый файл предназначен только для чтения;
'rt+' – открываемый текстовый файл предназначен для чтения и записи;
'wt' – создаваемый пустой файл предназначен для записи;
'wt+' – создаваемый пустой файл предназначен для чтения и записи;
'at' – открываемый текстовый файл предназначен для добавления данных в конец файла (если файл еще не существует, то он создается);
'at+' – открываемый текстовый файл предназначен для добавления данных в конец файла и чтения данных (если файл еще не существует, то он создается).
Второй входной аргумент обязательным не является. Если он отсутствует, то файл открывается для чтения как двоичный (не текстовый).
Выходным аргументом функции fopen является файловый идентификатор (номер), присвоенный файлу. Если файл найти не удалось, то идентификатор получает значение, равное –1.
Пример: существующий в рабочем каталоге файл data.txt открывается для чтения
f1=fopen('data.txt','rt')
f1 =
3
Если не указать расширение txt, то файл data.txt не будет найден
f=fopen('data','rt')
f =
-1
Примечание: ошибки при открытии файла часто возникают из-за того, что Matlab не может найти требуемый файл. Если задано короткое имя файла, то система пытается отыскать его сначала в рабочем каталоге, а затем выполняется поиск по всем каталогам, доступным Matlab. Если же указано полное имя файла, включая путь, то поиск осуществляется только в заданном каталоге.
Функция fopen может быть вызвана и со вторым дополнительным выходным аргументом – строковой переменной, которая будет содержать сообщение о результате открытия файла.
[f,message]=fopen('data','rt')
f =
-1
message =
No such file or directory
Этим сообщением Matlab извещает, что нет такого файла или каталога. В случае успешного открытия файла переменная message не будет содержать никакого текста, будет пустой (размером 0×0).
Пример: имя файла, открываемого для записи, задается с клавиатуры по запросу программы
file_name=input('Укажите имя файла для записи: ','s');
[f2,message]=fopen(file_name,'wt')
В результате работы этого фрагмента получим
Укажите имя файла для записи: rezult.txt
f2 =
4
message =
''
в рабочей папке будет создан пустой файл rezult.txt размером 0 байтов.
Примечание: обратите внимание, какие номера дает Matlab открываемым файлам пользователя: 3 и 4. Номера 0, 1 и 2 закреплены соответственно за тремя системными файлами: stdin – стандартный ввод (ввод с клавиатуры), stdout – стандартный вывод (вывод в командное окно) и stderr – для вывода сообщений об ошибках. Эти файлы открывать не надо, они автоматически всегда доступны.
Зная номер открытого файла, пользователь может получить информацию о статусе этого файла. Для этого к функции fopen следует обратиться с числовым входным аргументом – номером файла. Например, выполнив фрагмент программы
[name,acces]=fopen(0)
[name,acces]=fopen(1)
[name,acces]=fopen(2)
[name,acces]=fopen(f1)
[name,acces]=fopen(4)
с учетом открытых нами ранее файлов data.txt и rezult.txt получим
name0 =
"stdin"
acces0 =
r
name1 =
"stdout"
acces1 =
a
name2 =
"stderr"
acces2 =
a
name3 =
data.txt
acces3 =
rt
name4 =
rezult.txt
acces4 =
wt
Функция fopen допускает еще один формат вызова
v=fopen('all')
В этом случае она возвращает вектор с номерами всех файлов, открытых к данному моменту работы программы (файлы с номерами 0, 1 и 2 в этот список не включаются).
v =
3 4