В этом примере показов, как считать данные из Научных данных 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