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 для использования в системе с обратным порядком байтов. Задайте 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
Поддержка комплексного числа: Да

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

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

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

'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'

1n≤ 64

Целые числа, подписанные

'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'

1n≤ 64

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

'single'

32 (4)

'double'

64 (8)

'float'

32 (4)

'float32'

32 (4)

'float64'

64 (8)

'real*4'

32 (4)

'real*8'

64 (8)

'characters'

'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'

Упорядоченное расположение с обратным порядком байтов

'l' или 'ieee-le'

Упорядоченное расположение с прямым порядком байтов

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

Упорядоченное расположение обратного порядка байтов, 64-битный долгий тип данных

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

Упорядоченное расположение прямого порядка байтов, 64-битный долгий тип данных

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

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

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