- •Введение
- •Лабораторная работа ип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
3. Запись в текстовый файл
3.1. Запись строковых значений
Вывод информации в текстовый файл выполняет функция fprintf. Запись в текстовый файл с идентификатором f2 строки символов очень проста
fprintf(f2,'Строка текста')
Последующее обращение к fprintf записывает заданную строку сразу за предыдущей (не с новой строки!). Для вывода текста с новой строки необходимо добавить символ перевода строки \n в начало очередой строки после апострофа
fprintf(f2,'\n Строка текста с новой строки')
или в конец предыдущей строки до апострофа
fprintf(f2,' Строка текста \n ')
Вторым входным аргументом функции может быть и символьная переменная
s='Строка текста';
fprintf(f2,s)
Перевод строки в этом случае реализуется конкатенацией
fprintf(f2,[s '\n'])
3.2. Запись числовых значений
В файле, хранящем результат работы некоторой программы, символьная информация обычно перемежается с числовыми данными. Для записи в текстовый файл чисел (цепочек символов, изображающих число), конечно же, можно использовать функцию преобразования num2str. Но в этом случае трудно оформить результат в виде красивой таблицы. Для преобразования чисел из внутримашинного представления в соответствующие символьные цепочки применяют специальные форматы. Схема использования fprintf при записи числовых данных в текстовый файл следующая:
fprintf(f2, 'СписокФорматов', СписокДанных)
Здесь первый аргумент f2, как и в случае записи текста, является идентификатором файла, второй – строка с кодами форматов, которые определяют вид записи значений из списка, заданного третьим входным аргументом. СписокДанных – это перечень через запятую переменных, констант или выражений, значения которых необходимо вывести в файл.
Код формата начинается с символа %, за которым, как правило, указывают количество w позиций, отводимых под запись числа и .n количество цифр для отображения дробной части числа (таким образом, w.n означает w символов под полную запись числа, из них n символов – на дробную часть). Символы, изображающие число, выравниваются по правой границе поля шириной w. Завершается код одним из символов, характеризующих вид преобразования данных. Наиболее часто используемые символы форматов приведены в табл. 9.1. Использование целочисленных форматов предполагает, что преобразуемое число действительно является целым. В противном случае будет использован формат е. Допускается применение вещественных форматов к целочисленным значениям (число будет изображено с нулевой дробной частью).
Таблица 9.1
Символ формата |
Способ преобразования числа перед записью в текстовый файл |
d |
Преобразование целочисленного значения в десятичное со знаком |
f |
Преобразование числового значения в изображение вещественного числа с фиксированной точкой |
e |
Преобразование числового значения в изображение вещественного числа с плавающей точкой (признак порядка – буква е) |
g |
Преобразование числового значения в изображение вещественного числа с фиксированной или плавающей точкой в зависимости от того, какой формат занимает меньше места |
Если в списке данных, выводимых в текстовый файл, встречаются комплексные числа, то преобразованию подвергаются значения только вещественных их частей.
Простейшая программа табулирования функции и записи таблицы в текстовый файл rezult.txt в рабочем каталоге может иметь следующий текст:
[f2,message]=fopen('rezult.txt','wt');
fprintf(f2,'Tаблица значений функции sin(x)')
fprintf(f2,'\n x sin(x)\n')
x=-pi/2:pi/6:pi/2;
for k=1:length(x)
fprintf(f2,'%12.4f%10.4f\n',x(k), sin(x(k)))
end
В результате работы программы получим следующий файл:
Таблица значений функции sin(x)
x sin(x)
-1.5708 -1.0000
-1.0472 -0.8660
-0.5236 -0.5000
0.0000 0.0000
0.5236 0.5000
1.0472 0.8660
1.5708 1.0000
Вывод столбцов таблицы можно реализовать и более красиво, не используя оператор цикла
x=-pi/2:pi/6:pi/2;
y=[x; sin(x)];
fprintf(f2,'%12.4f%10.4f\n',y)