Пакет: 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);