Этот пример показывает, как использовать низкоуровневые функции, чтобы считать данные из CDF-файла. Низкий уровень MATLAB® функции CDF соответствует стандартным программам в библиотеке CDF C API. Чтобы использовать низкоуровневые функции CDF MATLAB эффективно, необходимо быть знакомы с интерфейсом CDF C.
Откройте демонстрационный CDF-файл, example.cdf
.
cdfid = cdflib.open('example.cdf');
Используйте cdflib.inquire
, чтобы получить информацию о количестве переменных в файле, количестве глобальных атрибутов и количестве атрибутов с переменной scope.
info = cdflib.inquire(cdfid)
info = struct with fields:
encoding: 'IBMPC_ENCODING'
majority: 'ROW_MAJOR'
maxRec: 23
numVars: 6
numvAttrs: 1
numgAttrs: 3
Используйте cdflib.inqurieVar
, чтобы получить информацию об отдельных переменных в файле. Числа Идентификатора переменной запускаются в нуле.
info = cdflib.inquireVar(cdfid,0)
info = struct with fields:
name: 'Time'
datatype: 'cdf_epoch'
numElements: 1
dims: []
recVariance: 1
dimVariance: []
info = cdflib.inquireVar(cdfid,1)
info = struct with fields:
name: 'Longitude'
datatype: 'cdf_int1'
numElements: 1
dims: [2 2]
recVariance: 0
dimVariance: [1 0]
Считайте данные в переменной в рабочее пространство MATLAB. Первая переменная содержит временные стоимости Эпохи CDF. Низкоуровневый интерфейс возвращает их как значения double
.
data_time = cdflib.getVarRecordData(cdfid,0,0)
data_time = 6.3146e+13
Преобразуйте временную стоимость в вектор даты.
timeVec = cdflib.epochBreakdown(data_time)
timeVec = 7×1
2001
1
1
0
0
0
0
Определите, какие атрибуты в CDF-файле являются глобальной переменной.
info = cdflib.inquireAttr(cdfid,0)
info = struct with fields:
name: 'SampleAttribute'
scope: 'GLOBAL_SCOPE'
maxgEntry: 4
maxEntry: -1
Считайте значение атрибута. Необходимо использовать функцию cdflib.getAttrgEntry
для глобальных атрибутов.
value = cdflib.getAttrgEntry(cdfid,0,0)
value = 'This is a sample entry.'
Используйте cdflib.close
, чтобы закрыть CDF-файл.
cdflib.close(cdfid);