Задание 1. (Национальный Исследовательский Университет)

М.А.И.

(Национальный Исследовательский Университет)

Лабораторная работа № 13

Практикум № 12

ФАЙЛЫ

Вариант № 24

Оформил: Абрамов Иван Андреевич

Проверил: Кривилёв А. В.

Москва 2012


Цель работы: Приобретение навыков работы с текстовыми и двоичными файлами в системе MATLAB.

Задание 1.

- разработать функцию для формирования текстового файла, содержащего форматированную таблицу исходных данных для построения кривой линии в декартовой системе координат;

function TrMaklorenaText(xl,xr,xs,filename)

%TRMAKLORENATEXT- формирование в текстовом файле таблици значаений

%трисектрисы маклорнеа

% Таблица формируется для значениё на отрезке [xl; xr]

% с шагом xs

%filename - строка содержащая имя создоваемого текстового файла

%Автор: И.А. Абрамов

%версия: 1.0. Дата: 9.05.2012

if nargin ~=4

error (' Функция должна иметь 4 входных параметра!')

end

if ~ischar(filename)

errar(' Имя файла должно записываться в формате char')

end

fid = fopen (filename,'wt');

if fid == -1

error(' Ошибка при создании файла! ')

end

nametbl = 'таблица значения r =1./cos(h/3)';

nameh ='h';

nametris = 'r';

fprintf (fid,'---------------------------------\n');

fprintf (fid,'|%26s|\n',nametbl);

fprintf (fid,'---------------------------------\n');

fprintf (fid,'| %6s | %8s |\n',nameh,nametris);

fprintf (fid,'---------------------------------\n');

h=xl:xs:xr'; r=1./cos(h/3);

fprintf(fid,'|%10.4f |%10.4f |\n',[h;r]);

fprintf (fid,'---------------------------------\n');

fclose(fid);

---------------------------------

|таблица значения r =1./cos(h/3)|

---------------------------------

| h | r |

---------------------------------

| -3.1416 | 2.0000 |

| -2.7489 | 1.6427 |

| -2.3562 | 1.4142 |

| -1.9635 | 1.2605 |

| -1.5708 | 1.1547 |

| -1.1781 | 1.0824 |

| -0.7854 | 1.0353 |

| -0.3927 | 1.0086 |

| 0.0000 | 1.0000 |

| 0.3927 | 1.0086 |

| 0.7854 | 1.0353 |

| 1.1781 | 1.0824 |

| 1.5708 | 1.1547 |

| 1.9635 | 1.2605 |

| 2.3562 | 1.4142 |

| 2.7489 | 1.6427 |

| 3.1416 | 2.0000 |

---------------------------------

- Написать функцию для ввода данных из созданного файла и построения графика.

function [x,y] = tbl2num(filename)

%TBL2NUM - преобразование таблицы в массивы чисел с использованием

%форматированного ввода данных из файла

%filename - имя файла, который содержит таблицу данных

% х, у - считанные из таблицы данные (предаставляются в виде векторов)

%Автор: И.А. Абрамов

%версия: 1.0. Дата: 9.05.2012

if ~ischar(filename)

errar(' Имя файла должно быть строкой!')

end

fid=fopen(filename, 'rt');

if fid == -1

error(' Ошибка при открытии файла! ')

end

strcount = 0;

while ~feof(fid)

strcount=strcount+1;

fgetl (fid);

end

fclose(fid);

fid=fopen(filename,'rt');

rownumber=strcount-6;

for k=1:5

fgetl(fid);

end

[num,count]=fscanf(fid, '%*s %f %*s %f %*s',[2 rownumber]);

if count ~= 2*rownumber

error('Ошибка при чтении файлов ')

else

h=num(1,:);

r=num(2,:);

end

[x,y]=pol2cart(h,r);

plot(x,y), axis equal, grid on,xlabel('x'),ylabel('y'),hold on

fclose(fid);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: