matlab.io.hdf4.sd.setNBitDataSet

Пакет: matlab.io.hdf4.sd

Задайте нестандартную длину в битах для значений набора данных

Синтаксис

setNBitDataSet(sdsID,startBit,bitlen,ext,fillone)

Описание

setNBitDataSet(sdsID,startBit,bitlen,ext,fillone) указывает, что целочисленные данные установили идентифицированный sdsID содержит данные нестандартной длины, заданной startBit и bitlen.

Любая длина между 1 и 32 битами может быть задана. После setNBitDataset был назван для массива набора данных, любая операция чтения или операция записи включат преобразование между новой длиной данных массива набора данных и продолжительность данных чтения или буфера записи.

Битные длины всех типов данных считаются от права на битовое поле начиная с 0. В небольшом поле, содержащем значения 01111011, биты 2 и 7 установлены в 0, и все другие биты установлены в 1. Младший значащий бит является битом 0.

startBit параметр задает крайнее левое положение битового поля переменной длины, которое будет записано. Например, в битовом поле, описанном в предыдущем абзаце startBit набор параметра к 4 соответствовал бы четвертому битовому значению 1 справа.

Параметр bitlen задает количество битов битового поля переменной длины, которое будет записано. Этот номер включает стартовый бит и доходы количества к правильному концу битового поля - к более низко-битным числам. Например, запуск на уровне бита 5 и запись 4 битов битового поля, описанного в предыдущем абзаце, привели бы к битовому полю 1110 записанный в набор данных. Это соответствовало бы startBit значение 5 и bitlen значение 4.

Параметр ext задает, использовать ли крайний левый бит битового поля переменной длины, чтобы подписаться - расширяют к крайнему левому биту данных о наборе данных. Например, если 9-битные данные о целом числе со знаком будут извлечены из битов 17-25, и бит в положении 25 равняется 1, то, когда данные считаны назад из диска, биты 26-31 будут установлены в 1. В противном случае бит 25 будет 0, и биты 26-31 будут установлены в 0. ext параметр может быть установлен на true (или 1) или false (или 0); задайте true чтобы подписаться - расширяют.

Параметр fillone задает, заполнить ли "фоновые" биты значением 1 или 0. Этот параметр также устанавливается на любой true (или 1) или false (или 0).

"Фоновые" биты нестандартного набора данных длины являются битами, которые падают за пределами нестандартного битового поля длины, сохраненного на диске. Например, если пять битов 16-битного набора целочисленных данных без знака, расположенного в битах 5 - 9, записаны в диск параметром fillone установите на true (или 1), затем то, когда данные перечитаны в биты памяти от 0 до 4 и 10 - 15, было бы установлено в 1. Если те же 5-битные данные были записаны с fillone значение false (или 0), затем биты от 0 до 4 и 10 - 15 были бы установлены в 0.

Операция на fillone выполняется перед операцией на ext. Например, использование ext пример выше, биты от 0 до 16 и 26 - 31 будет сначала подан к фоновому битовому значению, и затем биты 26 - 31 будут установлены в 1 или 0 на основе значения 25-го бита.

Эта функция соответствует SDsetnbitdataset в API библиотеки HDF C.

Примеры

import matlab.io.hdf4.*
sdID = sd.start('myfile.hdf','create');
sdsID = sd.create(sdID,'temperature','int32',[10 20]);
sd.setNBitDataSet(sdsID,6,4,0,0);
data = int32([1:200]);
data = reshape(data,10,20);
sd.writeData(sdsID,[0 0],data);
sd.endAccess(sdsID);
sd.close(sdID);

Смотрите также