Экспорт в CDF-файлы

В этом примере показано, как экспортировать данные в CDF-файл с помощью низкоуровневых функций MATLAB ® CDF. Функции MATLAB соответствуют стандартным программам в библиотеке CDF C API.

Чтобы эффективно использовать низкоуровневые функции MATLAB CDF, необходимо ознакомиться с интерфейсом CDF C. Кроме того, CDF-файлы не поддерживают кодированные без ASCII входы. Поэтому имена переменных, имена атрибутов, значения переменных и значения атрибутов должны иметь 7-битную кодировку ASCII.

Создание нового CDF-файла

Создайте новый CDF-файл с именем my_file.cdf использование cdflib.create. Эта функция соответствует стандартной программе CDF library C API, CDFcreateCDF.

cdfid = cdflib.create('my_file.cdf');

cdflib.create возвращает идентификатор файла, cdfid.

Создание переменных в CDF-файле

Создайте переменные с именем Time и Latitude использование cdflib.createVar. Эта функция соответствует стандартной программе CDF library C API, CDFcreatezVar.

time_id = cdflib.createVar(cdfid,'Time','cdf_int4',1,[],true,[]);
lat_id = cdflib.createVar(cdfid,'Latitude','cdf_int2',1,181,true,true);

cdflib.createVar возвращает числовой идентификатор для каждой переменной.

Создайте переменную с именем Image.

dimSizes = [20 10];
image_id = cdflib.createVar(cdfid,'Image','cdf_int4',1,...
    dimSizes,true,[true true]);

Запись в переменные

Запись данных в первую и вторую записи Time переменная. Номера записи начинаются с нуля. The cdflib.putVarRecordData функция соответствует стандартной программе CDF library C API, CDFputzVarRecordData.

cdflib.putVarRecordData(cdfid,time_id,0,int32(23));
cdflib.putVarRecordData(cdfid,time_id,1,int32(24));

Запись данных в Latitude переменная.

data = int16([-90:90]);
recspec = [0 1 1];
dimspec = { 0 181 1 };
cdflib.hyperPutVarData(cdfid,lat_id,recspec,dimspec,data);

Запись данных в Image переменная.

recspec = [0 3 1];
dimspec = { [0 0], [20 10], [1 1] };
data = reshape(int32([0:599]), [20 10 3]);
cdflib.hyperPutVarData(cdfid,image_id,recspec,dimspec,data);

Запись в глобальный атрибут

Создайте глобальный атрибут с именем TITLE использование cdflib.createAttr. Эта функция соответствует стандартной программе CDF library C API, CDFcreateAttr.

titleAttrNum = cdflib.createAttr(cdfid,'TITLE','global_scope');

cdflib.createAttr возвращает числовой идентификатор для атрибута. Номера атрибутов начинаются с нуля.

Запись значений в записи глобального атрибута.

cdflib.putAttrEntry(cdfid,titleAttrNum,0,'CDF_CHAR','cdf Title');
cdflib.putAttrEntry(cdfid,titleAttrNum,1,'CDF_CHAR','Author');

Запись в атрибуты, связанные с переменными

Создайте атрибуты, сопоставленные с переменными в CDF-файле.

fieldAttrNum = cdflib.createAttr(cdfid,'FIELDNAM','variable_scope');
unitsAttrNum = cdflib.createAttr(cdfid,'UNITS','variable_scope');

Запись в атрибуты Time переменная.

cdflib.putAttrEntry(cdfid,fieldAttrNum,time_id,...
    'CDF_CHAR','Time of observation');
cdflib.putAttrEntry(cdfid,unitsAttrNum,time_id,...
    'CDF_CHAR','Hours');

Получение информации о CDF-файле

Получите информацию о файле с помощью cdflib.inquire. Эта функция соответствует стандартным программам CDF library C API, CDFinquireCDF и CDFgetNumgAttributes.

info = cdflib.inquire(cdfid)
info = struct with fields:
     encoding: 'IBMPC_ENCODING'
     majority: 'ROW_MAJOR'
       maxRec: 2
      numVars: 3
    numvAttrs: 2
    numgAttrs: 1

cdflib.inquire возвращает массив структур, который включает информацию о кодировании данных и количестве переменных и атрибутов в файле.

Закрытие CDF-файла

Закройте CDF-файл, используя cdflib.close. Эта функция соответствует стандартной программе CDF library C API, CDFcloseCDF. Необходимо закрыть CDF, чтобы гарантировать запись всех изменений, внесенных вами с момента открытия CDF, в файл.

cdflib.close(cdfid);

См. также

Внешние веб-сайты