Пакет: matlab.io.hdf4.sd
Установите текущий режим заливки файла
prevmode = setFillMode(sdID,fillmode)
prevmode = setFillMode(sdID,fillmode)
возвращает предыдущий режим заливки файла и сбрасывает его в fillmode
. Этот параметр применяется ко всем наборам данных, содержащимся в файле, идентифицированном как sdID
.
Возможные значения fillmode
являются 'fill'
, и 'nofill'
. 'fill'
является режимом по умолчанию и указывает, что значения заливки будут записаны при создании набора данных. 'nofill'
указывает, что значения заливки не будут записаны.
Когда создается набор данных фиксированного размера, первый вызов для sd.writeData
заполнит весь набор данных значением заливки по умолчанию или пользовательским значением заливки, если fillmode
является 'fill'
. В наборах данных с неограниченной размерностью, если новая операция записи происходит вдоль неограниченного измерения за пределами последнего местоположения предыдущей операции записи, местоположения массива между этими записанными областями будут инициализированы в пользовательское значение заливки или значение заливки по умолчанию, если заданное пользователем значение заливки не было задано.
Если точно, что все значения набора данных будут записаны до выполнения любой операции чтения, нет необходимости записывать значения заливки. Вызывающие sd.setFillMode
с 'nofill'
может улучшить эффективность в этом случае.
Эта функция соответствует SDsetfillmode
функция в библиотеке HDF С API.
Напишите две частичные записи. Напишите первое в 'nofill'
mode, и второй с 'fill'
режим.
import matlab.io.hdf4.* sdID = sd.start('myfile.hdf','create'); sd.setFillMode(sdID,'nofill'); sdsID = sd.create(sdID,'temperature','double',[10 10 0]); sd.writeData(sdsID,[0 0 0], rand(5,5)); sd.setFillMode(sdID,'fill'); sd.setFillValue(sdsID,-999); sd.writeData(sdsID,[0 0 1], rand(5,5)); sd.endAccess(sdsID); sd.close(sdID);