Spec-Zone.ru › Octave 9

14.2.16 Бинарный ввод-вывод

Octave может читать и записывать бинарные данные с помощью функций fread и fwrite, созданных по образцу стандартных функций C с такими же именами. Они могут автоматически изменять порядок байтов целочисленных данных и преобразовывать поддерживаемые форматы чисел с плавающей точкой при чтении данных.

: val = fread (fid)
: val = fread (fid, size)
: val = fread (fid, size, precision)
: val = fread (fid, size, precision, skip)
: val = fread (fid, size, precision, skip, arch)
: [val, count] = fread (…)

Считывает бинарные данные из файла, заданного дескриптором файла fid.

Необязательный аргумент size задаёт объём считываемых данных и может принимать одно из следующих значений:

Inf

Считывает максимально возможный объём данных и возвращает вектор-столбец.

nr

Считывает не более nr элементов и возвращает вектор-столбец.

[nr, Inf]

Считывает максимально возможный объём данных и возвращает матрицу с nr строками. Если число считанных элементов не кратно nr, последняя колонка дополняется нулями.

[nr, nc]

Считывает не более nr * nc элементов и возвращает матрицу с nr строками. Если число считанных элементов не кратно nr, последняя колонка дополняется нулями.

Если аргумент size не указан, предполагается значение Inf.

Необязательный аргумент precision — это строка, задающая тип считываемых данных. Он может принимать одно из следующих значений:

"uint8" (по умолчанию)

Беззнаковое 8-битное целое число.

"int8"
"integer*1"

Знаковое 8-битное целое число.

"uint16"
"ushort"
"unsigned short"

Беззнаковое 16-битное целое число.

"int16"
"integer*2"
"short"

Знаковое 16-битное целое число.

"uint"
"uint32"
"unsigned int"
"ulong"
"unsigned long"

Беззнаковое 32-битное целое число.

"int"
"int32"
"integer*4"
"long"

Знаковое 32-битное целое число.

"uint64"

Беззнаковое 64-битное целое число.

"int64"
"integer*8"

Знаковое 64-битное целое число.

"single"
"float"
"float32"
"real*4"

32-битное число с плавающей точкой.

"double"
"float64"
"real*8"

64-битное число с плавающей точкой.

"char"
"char*1"

8-битный одиночный символ.

"uchar"
"unsigned char"

8-битный беззнаковый символ.

"schar"
"signed char"

8-битный знаковый символ.

По умолчанию используется точность "uint8".

Аргумент precision может также задавать необязательное число повторений. Например, ‘32*single’ заставляет fread считывать блок из 32 чисел с плавающей точкой одинарной точности. Считывание блоками полезно в сочетании с аргументом skip.

Аргумент precision может также задавать преобразование типа. Например, ‘int16=>int32’ заставляет fread считывать 16-битные целочисленные значения и возвращать массив 32-битных целочисленных значений. По умолчанию fread возвращает массив чисел двойной точности. Специальная форма ‘*TYPE’ является сокращением для ‘TYPE=>TYPE’.

Преобразование и число повторений можно комбинировать. Например, спецификация ‘32*single=>single’ заставляет fread считывать блоки значений с плавающей точкой одинарной точности и возвращать массив значений одинарной точности вместо массива чисел двойной точности, используемого по умолчанию.

Необязательный аргумент skip задаёт число байтов, пропускаемых после считывания каждого элемента (или блока элементов). Если аргумент не указан, предполагается значение 0. Если последний считанный блок неполный, заключительный пропуск не выполняется. Например,

fread (f, 10, "3*single=>single", 8)

не будет выполнен заключительный пропуск 8 байтов, поскольку последнее считывание не составит полного блока из 3 значений.

Необязательный аргумент arch — это строка, задающая формат данных файла. Допустимые значения:

"native" или "n"

Формат текущего компьютера.

"ieee-be" или "b"

IEEE, порядок байтов от старшего к младшему.

"ieee-le" или "l"

IEEE, порядок байтов от младшего к старшему.

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

Выходной аргумент val содержит данные, считанные из файла.

Необязательное возвращаемое значение count содержит число считанных элементов.

См. также: fwrite, fgets, fgetl, fscanf, fopen.

: count = fwrite (fid, data)
: count = fwrite (fid, data, precision)
: count = fwrite (fid, data, precision, skip)
: count = fwrite (fid, data, precision, skip, arch)

Записывает данные в бинарном формате в файл, заданный дескриптором файла fid.

Аргумент data — это матрица значений, которые необходимо записать в файл. Значения извлекаются в порядке следования по столбцам.

Остальные аргументы precision, skip и arch являются необязательными и интерпретируются так же, как для fread.

Выходное значение count — это число успешно записанных элементов данных.

Примечание по программированию: поведение fwrite не определено, если значения в data слишком велики, чтобы уместиться в указанной точности.

См. также: fread, fputs, fprintf, fopen.

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Binary-I_002fO.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API