Форматный вывод матричных данных
>> x=0:0.2:1% вектор из 6 компонентов
x =
Columns 1 through 5
0 0.20 0.40 0.60 0.80
Column 6
1.00
>> fprintf('%g',x) ) % вывод компонентов вектора в одной строке
00.20.40.60.81>>
у=[х; sin(x)] % массив размерности 2x6
y =
; 0 0.2000 0.4000 0.6000 0.8000. 1.0000
> 0 0.1987 0.3894 0.5646 0.7174 0.8415
^
» fprintf(' %4.1f %8.4f\n',y) % вывод массива в виде 6 строк
0.0 0.0000
0.2 0.1987
0.4 0.3894 0.6 0.5646 0.8 0.7174 1-0 0.8415
Чтение данных из текстового файла
Выборка данных из текстового файла может быть произведена с помощью функции fscanf, обращение к которой в общем виде выглядит следуюшим образом:
[a n]=fscanf(f_id,'format',m);
Здесь:
a — принимающий массив, в элементы которого заносятся считываемые данные;
n — количество фактически считанных значений; f_id — номер открытого файла;
format — список форматных указателей, в соответствии с которыми осуществляется преобразование считываемых данных;
m — количество запрашиваемых данных.
Обязательными параметрами в этом обращении являются массив а, идентификатор файла f_id и хотя бы один форматный указатель в списке format. Отсутствие количества запрашиваемых значений или константа Inf в качестве третьего параметра воспринимаются как задание прочитать данные до конца файла. Если количество запрашиваемых значений задано числом m, то считываемые данные размещаются в векторе-столбце размерности mx1. Но, указав количество запрашиваемых данных в виде вектора [р q], можно прочитать данные из файла в матрицу размерности pxq.
k=fopen('a.txt','wt');% открыли файл для вывода
a=(magic(5)) % сформировали магический квадрат
n=fprintf(k,'%3d',a)%записали массив в файл
fclose(k);%закрыли файл
k=fopen('a.txt','rt');%открыли файл для чтения
[d1 n]=fscanf(k,'%d',[5 5])%читаем матрицу 5х5
frewind(k);%вернули указатель файла в начало
[c n]=fscanf(k,'%d',5)%считали первый столбец
[c1 n]=fscanf(k,'%d',5)%считали следующие 5 значений
fclose(k)%закрыли файл
a =
17.00 24.00 1.00 8.00 15.00
23.00 5.00 7.00 14.00 16.00
4.00 6.00 13.00 20.00 22.00
10.00 12.00 19.00 21.00 3.00
11.00 18.00 25.00 2.00 9.00
n =
75.00 %количество байтов, записанных в файл
d1 =
17.00 24.00 1.00 8.00 15.00
23.00 5.00 7.00 14.00 16.00
4.00 6.00 13.00 20.00 22.00
10.00 12.00 19.00 21.00 3.00
11.00 18.00 25.00 2.00 9.00
n =
25.00
c =
17.00
23.00
4.00
10.00
11.00
n =
5.00
c1 =
24.00
5.00
6.00
12.00
18.00
n =
5.00
ans =
0
Задание для лабораторной работы №6
1.Составить файл-функцию для вычисления кусочно-заданной функции
2.Для массива x вычислить значения массива y, записать их в текстовый файл на диске.
3.Прочитав значения из текстового файла, построить график функции, используя функцию fplot.
Содержание отчета
Цель работы.
Описание операторов, используемых для выполнения задания.
Листинг файла-сценария и результаты работы программы, график функции.
Ответы на контрольные вопросы.
Контрольные вопросы
Какими операциями ограничивается работа с файлами?
Какие форматы представления данных используют внешние носители?
В чем состоит подготовка файла к работе?
Какой входной аргумент определяет режим доступа к открываемому файлу?.
Как завершить работу с файлом?.
Функция вывода данных в текстовый файл.?
Какие преобразования необходимы с данными для записи в файл? Символы указателей формата.
Функция чтения данных из текстового файла?