Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаИПлб.doc
Скачиваний:
38
Добавлен:
08.05.2019
Размер:
6.96 Mб
Скачать

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)