Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Числ_методы_I_(лаб).doc
Скачиваний:
218
Добавлен:
05.06.2015
Размер:
3.44 Mб
Скачать

Форматный вывод информации

Задание формата вывода значений переменных в командное окно описано выше.Это – форматыshort,long,short eиlong e, задаваемые командойformat. Однако функцияfprintfдопускает гораздо более гибкое управление видом записи чисел в файл. Схема её использования при работе с числовыми переменными такова:

fprintf(идентификатор, 'форматы', переменные)

Здесь первый аргумент, как и в случае вывода строк, является идентификатором файла, второй – строка с кодами форматов, которые определяют вид записи значений переменных из списка, который задаётся третьим аргументом.

Одним из часто используемых кодов формата в Matlab’е является код%N.mf. Он применяется для записи числа в фиксированном формате с десятичной точкой. Знак процента указывает на начало формата. Его первая цифра означает, что всего под значение выводимой переменной отводитсяNпозиций, включая десятичную точку и место под знак, которое резервируется и для положительных чисел. Вторая цифра после точки–разделителя означает, что под дробную часть значения выводимой переменной отводитсяmпозиций. Сам спецификаторfуказывает на то, что число следует вывести в формате с плавающей точкой.

Текст программы, записывающей в файл шапку таблицы и результаты расчёта значений тригонометрического синуса, приведён ниже:

[F,mes] = fopen('tablsin.txt', 'wt');

x = -Pi/4:0.1*Pi:Pi/4;

y = sin(x);

fprintf(F, ' х | у= sin(x)\n');

fprintf(F, '--------+------------\n');

for i=1:6

fprintf(F, '%7.4f', x(i));

fprintf(F, ' | ');

fprintf(F, '%11.8f', y(i));

fprintf(F, ' \n');

end

fclose(F);

В результате работы этой программы в файл tablsin.txt, находящейся в той же папке, что и файл с текстом программы, будет выведен следующий текст

х | у= sin(x)

--------+------------

-0.7854 | -0.70710678

-0.4712 | -0.45399050

-0.1571 | -0.15643447

0.1571 | 0.15643447

0.4712 | 0.45399050

0.7854 | 0.70710678

При использовании форматного вывода следует учесть, что в случае, если количество переменных в списке вывода больше числа кодов формата, то для вывода неуместившихся переменных коды форматов применяются повторно, начиная с первого.

Ввод данных из файла

Чтение числовых данных из фрагмента текстового файла, организованного как таблица, может быть выполнено с помощью функции dlmread. Её синтаксис имеет вид

M = dlmread('filename', 'r', n, m)

где filename– имя файла, из которого считывается информация,r– символ, с помощью которого в файле разделены записи,n– количество строк, которые пропускаются при считывании, считывание начинается с (n+1)-й строки,m– количество записей, которые пропускаются в каждой строке, считывание в каждой строке начинается с (m+1)-й записи.

Например, если в файле Labrab_1.datхранятся числа, разделённые запятыми, по 3 числа в 3-х строках

2341.15, 2.2, 2.356

3.3, 4.4, -30.5678

-23, 90, 0.09

то, в результате выполнения команды

M = dlmread('Labrab_1.dat', ',', 1, 1)

в переменной Mокажется матрица размером 2 на 2 элементов со значениями

M =

4.4000 -30.5678

90.0000 0.0900

В функции dlmreadвместо параметровnиmможно в виде записи–строки задать диапазон адресов считываемых из файла данных, записанных в виде таблицы. Этот диапазон адресов задается так же, как в Excel’е в виде адресов первой и последней записи, разделённых двоеточием. Например, считывание элементов матрицы, описанное выше, может быть организовано следующим образом

M = dlmread('Labrab_1.dat', ',', 'b2..c3').

Целиком считать весь файл можно с помощью команды

fileread(filename).

Если же надо считать целиком только текущую строку, то это можно сделать комендой

fgetl(filename).