Этот пример показывает, как считать данные из Набора научных данных в файле 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
. Входной параметр start
является вектором индексных значений, задающих местоположение в наборе данных, где вы хотите начать считывать данные. Входной параметр 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