Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа№7.docx
Скачиваний:
7
Добавлен:
01.06.2015
Размер:
89.87 Кб
Скачать

Форматный вывод матричных данных

>> 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.

Содержание отчета

  1. Цель работы.

  2. Описание операторов, используемых для выполнения задания.

  3. Листинг файла-сценария и результаты работы программы, график функции.

  4. Ответы на контрольные вопросы.

Контрольные вопросы

  1. Какими операциями ограничивается работа с файлами?

  2. Какие форматы представления данных используют внешние носители?

  3. В чем состоит подготовка файла к работе?

  4. Какой входной аргумент определяет режим доступа к открываемому файлу?.

  5. Как завершить работу с файлом?.

  6. Функция вывода данных в текстовый файл.?

  7. Какие преобразования необходимы с данными для записи в файл? Символы указателей формата.

  8. Функция чтения данных из текстового файла?