Пакет: 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 в API библиотеки HDF.
Запишите две частичные записи. Запишите первый в 'nofill' режим, и второй с '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);