В этом примере показов, как считать данные из Научных данных Set в файле 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 функция. Эта функция соответствует стандартной программе SD API, SDstart.
sdID = sd.start('sd.hdf','read');
sd.start возвращает HDF4 идентификатор файла SD, sdID.
Получите количество наборов данных и глобальных атрибутов в файле, используя matlab.io.hdf4.sd.fileInfo функция. Эта функция соответствует стандартной программе SD API, 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 функция. Эта функция соответствует стандартной программе SD API, 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 функция, которая соответствует стандартной программе SD API, SDreaddata. The start вход является вектором значений индекса, определяющим местоположение в наборе данных, где вы хотите начать чтение данных. The 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 функция. Эта функция соответствует стандартной программе SD API, SDendaccess. Перед закрытием файла необходимо закрыть доступ ко всем наборам данных и HDF4 файлу.
sd.endAccess(sdsID)
Закройте файл HDF4 с помощью matlab.io.hdf4.sd.close функция. Эта функция соответствует стандартной программе SD API, SDend.
sd.close(sdID)
sd.close | sd.endAccess | sd.fileInfo | sd.getInfo | sd.readData | sd.start