Двоичными, или бинарными, называют файлы, данные которых представляют собой машинные коды. Основные операции с такими кодами перечислены ниже.
fopen(filename, permission) — открывает файл с именем filename и параметром, определенным в permission, и возвращает идентификатор fid со значением: 0 — чтение с клавиатуры (permission установлено в 'r'); 1 — вывод на дисплей (permission установлено в 'а'); 2 — вывод сообщения об ошибке (permission установлен в ' а'); -1 — неудача в открытии файла с выводом сообщения message о типе ошибки. Идентификатор fid часто используется в качестве аргумента другими функциями и программами ввода-вывода. Имя файла filename может содержать путь к файлу.
Если открываемый для чтения файл не найден в текущем каталоге, то функция fopen осуществляет поиск файла по пути, указанном в MATLAB.
Параметр permission может принимать одно из следующих основных значений (другие см. в справочной системе):
1. 'r' — открытие файла для чтения (по умолчанию);
2. ' r+' — открытие файла для чтения и записи;
3. 'w' — удаление содержимого существующего файла или создание нового и открытие его для записи;
4. ' а' — создание и открытие нового файла или открытие существующего для записи с добавлением в конец файла.
Добавление к этой строке ' b' (подразумевается по умолчанию) предписывает системе открыть файл в двоичном режиме.
[fid,message] = fopentfilename.permission,format) — открывает файл, как описано выше, возвращая идентификатор файла и сообщение. Кроме того, значение параметра format позволяет точно определить числовой формат. Возможно 8 форматов, описание которых можно найти в справочной системе.
Функция fclose закрывает файл. Она имеет следующие варианты.
status = fclose(fid) — закрывает файл, если он открыт. Возвращает статус файла status, равный 0, если закрытие завершилось успешно, и -1 в противном случае. Аргумент fid — это идентификатор, связанный с открытым файлом (см. функцию fopen для более подробного описания);
status = fclose( 'all') закрывает все открытые файлы. Возвращает 0 в случае успешного завершения и -1 — в противном случае.
Функция [A,count] = fread(fid,size,precision) — считывает двоичные данные из заданного файла и помещает их в матрицу А. Выходной аргумент count содержит число удачно считанных элементов. Значение идентификатора fid — это целое число, возвращенное функцией fopen; size — аргумент, определяющий количество считываемых данных. Если аргумент size не определен, функция f read считывает данные до конца файла.
Используются следующие параметры size:
n — чтение n элементов в вектор-столбец;
inf — чтение элементов до конца файла и помещение их в вектор-столбец, содержащий такое же количество элементов, что и в файле;
[m.n] — считывает столько элементов, сколько нужно для заполнения матрицы тхп.
Заполнение происходит по столбцам. Если элементов в файле мало, то матрица дополняется нулями. Если считывание достигает конца файла, не заполнив матрицу необходимого размера, то матрица дополняется нулями. Если происходит ошибка, чтение останавливается на последнем считанном значении. Параметр precision — строка, определяющая числовую точность считывания значений, она контролирует число считанных бит для каждого значения и интерпретирует эти биты как целое число, число с плавающей запятой или как символ
Функция count=fwrite(fid,A,precision) — записывает элементы матрицы А в файл, представляя их с заданной точностью. Данные записываются в файл по столбцам, выходной аргумент count содержит число удачно записанных элементов. Значение идентификатора fid — это целое число, полученное при использовании функции fopen. Добавляет символы «возврат каретки» перед началом новой строки;