fwrite

Запись данных в двоичный файл

Описание

пример

fwrite(fileID,A) записывает элементы массива A в виде 8-битных беззнаковых целых чисел в двоичный файл в порядке столбца. Двоичный файл обозначается идентификатором файла fileID. Использовать fopen чтобы открыть файл и получить fileID значение. Когда вы закончите запись, закройте файл, позвонив fclose(fileID).

пример

fwrite(fileID,A,precision) записывает значения в A в форме и размере, описанных precision.

fwrite(fileID,A,precision,skip) пропускает количество байтов или бит, заданное skip перед записью каждого значения.

пример

fwrite(fileID,A,precision,skip,machinefmt) дополнительно задает порядок записи байтов или бит в файл. The skip аргумент необязателен.

count = fwrite(___) возвращает количество элементов A что fwrite успешно записывается в файл. Можно использовать этот синтаксис с любым из входных параметров предыдущих синтаксисов.

Примеры

свернуть все

Откройте файл с именем nine.bin для письма. Укажите доступ для записи с помощью 'w' в вызове fopen.

fileID = fopen('nine.bin','w');

fopen возвращает идентификатор файла, fileID.

Запишите целые числа от 1 до 9 как 8-битные беззнаковые целые числа.

fwrite(fileID,[1:9]);

Закройте файл.

fclose(fileID);

Откройте файл с именем magic5.bin для письма.

fileID = fopen('magic5.bin','w');

Напишите 25 элементов магического квадрата 5 на 5. Используйте precision аргумент, 'integer*4', для записи 4-байтовых целых чисел.

fwrite(fileID,magic(5),'integer*4');

Закройте файл.

fclose(fileID);

Запишите двоичный файл, содержащий элементы магического квадрата 4 на 4, сохраненные как числа с плавающей запятой двойной точности.

fileID = fopen('magic4.bin','w');
fwrite(fileID,magic(4),'double');
fclose(fileID);

Откройте файл, magic4.bin, с доступом на запись, который позволяет добавить к файлу. Укажите тип доступа к файлу, 'a', в вызове fopen.

fileID = fopen('magic4.bin','a');

Добавьте матрицу нулей 4 на 4 к файлу. Затем закройте файл.

fwrite(fileID,zeros(4),'double');
fclose(fileID);

Запись случайных чисел двойной точности в файл с именем myfile.bin для использования на большой-эндовой системе. Задайте machinefmt значение 'ieee-be' в вызове fwrite, для указания биг-эндовых упорядоченных расположений байтов.

fileID = fopen('myfile.bin','w');
fwrite(fileID,rand(4),'double','ieee-be');
fclose(fileID);

Входные параметры

свернуть все

Идентификатор файла, заданный как целое число, полученное из fopen, 1 для стандартного выхода (экран), или 2 для стандартной ошибки.

Данные для записи, заданные как число, символ или строковые массивы.

Пока fwrite поддерживает запись символьных или строковых данных, это может привести к неожиданному поведению и поэтому не рекомендуется.

Если вы используете fwrite чтобы записать символьные или строковые данные, задайте кодировку текста при вызове fopen чтобы открыть файл для чтения или записи и указать точность следующим char.

Пример: [1,2,3;4,5,6]

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string
Поддержка комплексного числа: Да

Класс и размер в битах записываемых значений, заданные как один из векторов символов или строковых скаляров, перечисленных в столбце Precision.

Тип значенияТочностьБиты (байты)

Целые числа, без знака

'uint'

32 (4)

'uint8'

8 (1)

'uint16'

16 (2)

'uint32'

32 (4)

'uint64'

64 (8)

'uchar'

8 (1)

'unsigned char'

8 (1)

'ushort'

16 (2)

'ulong'

32 (4)

'ubit <reservedrangesplaceholder0>'

1n64

Целые числа, со знаком

'int'

32 (4)

'int8'

8 (1)

'int16'

16 (2)

'int32'

32 (4)

'int64'

64 (8)

'integer*1'

8 (1)

'integer*2'

16 (2)

'integer*4'

32 (4)

'integer*8'

64 (8)

'schar'

8 (1)

'signed char'

8 (1)

'short'

16 (2)

'long'

32 (4)

'бит n'

1n64

Числа с плавающей запятой

'single'

32 (4)

'double'

64 (8)

'float'

32 (4)

'float32'

32 (4)

'float64'

64 (8)

'real*4'

32 (4)

'real*8'

64 (8)

Персонажи

'char*1'

8 (1)

'char'

MATLAB®char тип не является фиксированным размером, и количество байтов зависит от схемы кодирования, сопоставленной с файлом. Установите кодировку с fopen.

Если вы задаете точность битов n или ubit n, затем fwrite насыщается для всех значений, не входящих в область значений.

Примечание

Чтобы сохранить NaN и Inf значения в MATLAB, чтение и запись данных классов double или single.

Количество байтов, которые нужно пропустить перед записью каждого значения, заданное как скаляр. Если вы задаете precision бит- n или ubit n, задайте skip в битах.

Используйте skip аргумент для вставки данных в несмежные поля в записях фиксированной длины.

Порядок записи байтов в файл, заданный как один из векторов символов или строковых скаляров в следующей таблице. Для битовых n и ubit n точности, machinefmt задает порядок записи бит в байте, но порядок записи байтов остается упорядоченным расположением системного байта.

'n' или 'native'

Ваш системный байт упорядоченного расположения (по умолчанию)

'b' или 'ieee-be'

Большой-эндовый упорядоченное расположение

'l' или 'ieee-le'

Little-endian упорядоченное расположение

's' или 'ieee-be.l64'

Большой-эндовый упорядоченное расположение, 64-битный длинный тип данных

'a' или 'ieee-le.l64'

Little-endian ordering, 64-битный длинный тип данных

По умолчанию все поддерживаемые в настоящее время платформы используют малоэндовый порядок для новых файлов. Существующие двоичные файлы могут использовать или большое-эндовый или маленькое-эндовый упорядоченное расположение.

Расширенные возможности

.
Представлено до R2006a