В этом примере показано, как считывать данные из набора научных данных в файле HDF4 с помощью функций matlat.io.hdf4.sd пакет. В HDF4 терминологии числовые массивы, хранящиеся в HDF4 файлах, называются наборами данных.
Добавить matlab.io.hdf4.* путь к списку импорта.
import matlab.io.hdf4.*Последующие вызовы функций в matlat.io.hdf4.sd пакет должен иметь только префикс sd, а не весь путь пакета.
Откройте файл HDF4 примера, sd.hdfи укажите доступ для чтения с помощью matlab.io.hdf4.sd.start функция. Эта функция соответствует подпрограмме API SD, SDstart.
sdID = sd.start('sd.hdf','read');
sd.start возвращает идентификатор HDF4 SD-файла, sdID.
Получение количества наборов данных и глобальных атрибутов в файле с помощью matlab.io.hdf4.sd.fileInfo функция. Эта функция соответствует подпрограмме API SD, SDfileinfo.
[ndatasets,ngatts] = sd.fileInfo(sdID)
ndatasets = 4
ngatts = 1
Файл, sd.hdf, содержит четыре набора данных и один глобальный атрибут,
Получение содержимого первого глобального атрибута. HDF4 использует индексирование на основе нуля, поэтому значение индекса 0 указывает первый индекс.
HDF4 файлы могут дополнительно содержать информацию, называемую атрибутами, которая описывает данные, содержащиеся в файле. Атрибуты, связанные со всем файлом HDF4, являются глобальными атрибутами. Атрибуты, связанные с набором данных, являются локальными атрибутами.
attr = sd.readAttr(sdID,0)
attr = '02-Sep-2010 11:13:16'
Определение индексного номера набора данных с именем temperature. Затем получите идентификатор этого набора данных.
idx = sd.nameToIndex(sdID,'temperature');
sdsID = sd.select(sdID,idx);sd.select возвращает идентификатор набора данных HDF4 SD, sdsID.
Получение информации о наборе данных, идентифицированном sdsID с использованием matlab.io.hdf4.sd.getInfo функция. Эта функция соответствует подпрограмме API SD, SDgetinfo.
[name,dims,datatype,nattrs] = sd.getInfo(sdsID)
name = 'temperature'
dims = 1×2
20 10
datatype = 'double'
nattrs = 11
sd.getInfo возвращает информацию о имени, размере, типе данных и количестве атрибутов набора данных.
Считывание всего содержимого набора данных, указанного идентификатором набора данных. sdsID.
data = sd.readData(sdsID);
Считывайте 2 на 4 часть набора данных, начиная с первого столбца во второй строке. Используйте matlab.io.hdf4.sd.readData функция, которая соответствует подпрограмме API SD, SDreaddata. start input - вектор значений индекса, указывающий местоположение в наборе данных, с которого необходимо начать считывание данных. count ввод представляет собой вектор, определяющий количество элементов, считываемых вдоль каждого измерения набора данных.
start = [0 1]; count = [2 4]; data2 = sd.readData(sdsID,start,count)
data2 = 2×4
21 41 61 81
22 42 62 82
Закройте доступ к набору данных с помощью matlab.io.hdf4.sd.endAccess функция. Эта функция соответствует подпрограмме API SD, SDendaccess. Перед закрытием файла необходимо закрыть доступ ко всем наборам данных в и HDF4 файле.
sd.endAccess(sdsID)
Закройте файл HDF4 с помощью matlab.io.hdf4.sd.close функция. Эта функция соответствует подпрограмме API SD, SDend.
sd.close(sdID)
sd.close | sd.endAccess | sd.fileInfo | sd.getInfo | sd.readData | sd.start