exponenta event banner

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) дополнительно указывает порядок записи байтов или битов в файл. 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 для использования в системе big-endian. Укажите machinefmt значение 'ieee-be' в вызове для fwrite, чтобы указать порядок байтов big-endian.

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)

'ubitn'

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)

'bitn'

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.

Если указана точность bitn или ubitn, то fwrite насыщает для всех значений за пределами диапазона.

Примечание

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

Число байтов, пропускаемых перед записью каждого значения, указанного как скаляр. Если указать precision из bitn или ubitn, указать skip в битах.

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

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

'n' или 'native'

Порядок системных байтов (по умолчанию)

'b' или 'ieee-be'

Заказ Big-endian

'l' или 'ieee-le'

Заказ Little-endian

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

Порядок Big-endian, 64-разрядный тип данных

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

Упорядочивание Little-endian, 64-разрядный длинный тип данных

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

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

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