Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы по КПРЗПФ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.46 Mб
Скачать

Ввод-вывод данных matlab

MATLAB имеет широкий набор операторов ввода-вывода. Ниже перечислены основные.

1) disp – вывод на экран строковой константы или переменной.

Например:

disp('***** MATLAB *****');

или

S = '***** MATLAB *****'; disp(S);

2) sprintf – преобразует, под управлением строки FORMAT, действительные части матриц, записывает их в строковую переменную и возвращает ее MATLAB.

S = sprintf('FORMAT', A,B,....)

S – строковая переменная, которой присваиваются выводимые значения;

FORMAT – строка форматов;

А, В,...– имена переменных, подлежащих выводу.

Например

A = 34.25;B = 762;

S = sprintf('%5.2f %3i',[A B]);

Если после оператора стоит <;> то строковая переменная S просто получает значения S = [34.25 762]. Если после оператора стоит <,> то эти значения выводятся на экран.

Если переменные в списке – матрицы, то они выводятся в соответствии со списком формата по столбцам в одну строку. Для отделения столбцов друг от друга необходимо в списке форматов использовать символ завершения строки '\n'. После использования всех форматов списка происходит переход к первому элементу списка и т.д.

Основные типы форматов: d,i,o,u,x,X,f,e,E,q,G,c,s. Специальные символы:

\r – перевод строки.

\t – перевод каретки.

\b – табуляция.

\f – возврат.

В рассмотренном случае выводимые данные присваиваются текстовой переменной. Однако данные могут быть записаны и в файл. Для этого необходимо использовать оператор FPRINTF.

3) count = fprintf( FID, 'FORMAT', [A B...] ) – по этому оператору действительные части данных из матриц А,В,... форматируются в соответствии со списком FORMAT и записываются в файл, связанный с идентификатором FID. FID – идентификатор файла (целое число), полученный от оператора FOPEN (см. ниже). count – число успешно записанных элементов.

4) A = fscanf( FID, 'FORMAT' ) – читает данные из файла, связанного с идентификатором FID, преобразует их в соответствии со строкой FORMAT и передает их матрице А.

5) A = sscanf(S,'FORMAT') – то же, что fscanf, но чтение данных происходит из строковой переменной S. Работает быстрее, чем fscanf.

Операторы fopen, fclose

Оператор fopen открывает файл. Наиболее употребительная форма имеет вид:

FID = fopen( 'ИМЯ', 'РАЗРЕШЕНИЯ' )

Этот оператор открывает файл с указанным именем и разрешениями. Если файл не найден в текущем каталоге, то используется список путей для поиска его в других каталогах.

FID – идентификатор файла. Если файл открыт успешно, переменной FID присваивается целое число(идентификатор файла), использующeeся другими операторами ввода-вывода. Если попытка открыть файл не удалась, FID получает значение –1.

По умолчанию файлы открываются в двоичном режиме. Чтобы открыть текстовый файл, необходимо добавить в строке РАЗРЕШЕНИЯ символ 't'. Например 'rt' или 'wt+'.

РАЗРЕШЕНИЯ – один из символов:

'r' – только чтение из файла;

'w' – запись (в случае необходимости создает файл);

'a' – добавление в конец (в случае необходимости создает файл);

'r+' – чтение и запись (не создает нового файла);

'w+' – усекает или создает для чтения и записи;

'+' – чтение и добавление в конец;

'W' – запись без автоматического сброса на диск;

'A' – добавление в конец без автоматического сброса на диск.

Два идентификатора файлов открыты по умолчанию: FID = 1 (стандартный вывод) и FID = 2 (стандартная ошибка).

[FID, MESSAGE] = fopen( 'ИМЯ', 'РАЗРЕШЕНИЯ' )

возвращает сообщение о ошибках системы, если файл не удалось открыть.

FIDS = fopen( 'all' )

возвращает вектор строку – идентификаторы всех открытых файлов (кроме FID = 1, 2).

Например: F1 = fopen( 'abc.txt', 'wt' ) открывает для записи текстовый файл с именем abc.txt, присваивая его идентификатору F1 определенный номер. В дальнейшем обращение к этому файлу производится посредством его идентификатора F1.

Оператор FCLOSE закрывает файл, открытый оператором FOPEN.

ST = fclose( FID ) закрывает файл с идентификатором FID.

ST = fclose( 'all' ) закрывает все открытые файлы (кроме FID=0,1,2).

Возвращает ST = 0, если процесс завершился успешно и -1 в противном случае.