导出为CDF文件
这个例子展示了如何使用MATLAB®CDF低级函数将数据导出到CDF文件。MATLAB函数对应于CDF API库中的例程。
要有效地使用MATLAB CDF底层函数,您必须熟悉CDF C接口。此外,CDF文件不支持非ascii编码的输入。万博1manbetx因此,变量名、属性名、变量值和属性值必须采用7位ASCII编码。
新建CDF文件
创建一个新的CDF文件my_file.cdf
使用cdflib.create
。这个函数对应于CDF库的C API例程,CDFcreateCDF
。
Cdfid = cdflib.create(“my_file.cdf”);
cdflib.create
返回文件标识符,cdfid
。
创建CDF文件中的变量
创建名为时间
和纬度
使用cdflib.createVar
。这个函数对应于CDF库的C API例程,CDFcreatezVar
。
time_id = cdflib.createVar(cdfid,“时间”,“cdf_int4”1[],真的,[]);lat_id = cdflib.createVar(cdfid,“纬度”,“cdf_int2”, 1181年,真的,真的);
cdflib.createVar
返回每个变量的数字标识符。
创建一个名为图像
。
dimSizes = [2010];image_id = cdflib.createVar(cdfid,“图像”,“cdf_int4”,1,...dimSizes,真实,真实的真正的);
写入变量
的第一和第二记录写入数据时间
变量。记录数字是从零开始的。的cdflib.putVarRecordData
函数对应于CDF库C API例程,CDFputzVarRecordData
。
cdflib.putVarRecordData (cdfid time_id 0 int32 (23));cdflib.putVarRecordData (cdfid time_id 1 int32 (24);
将数据写入纬度
变量。
数据= int16([-90:90]);Recspec = [0 1 1];Dimspec = {0 181 1};cdflib.hyperPutVarData (cdfid lat_id、recspec dimspec,数据);
将数据写入图像
变量。
Recspec = [0 31];Dimspec = {[0 0], [20 10], [11 1]};数据=重塑(int32([0:599]), [20103]);cdflib.hyperPutVarData (cdfid image_id、recspec dimspec,数据);
写入全局属性
创建一个全局属性标题
使用cdflib.createAttr
。这个函数对应于CDF库的C API例程,CDFcreateAttr
。
titleAttrNum = cdflib.createAttr(cdfid,“标题”,“global_scope”);
cdflib.createAttr
返回属性的数字标识符。属性号从零开始。
将值写入全局属性中的条目。
cdflib.putAttrEntry (cdfid titleAttrNum 0,“CDF_CHAR”,“cdf实验组的标题”);cdflib.putAttrEntry (cdfid titleAttrNum 1,“CDF_CHAR”,“作者”);
写入与变量关联的属性
在CDF文件中创建与变量关联的属性。
fieldAttrNum = cdflib.createAttr(cdfid,“FIELDNAM”,“variable_scope”);unitsAttrNum = cdflib.createAttr(cdfid,“单位”,“variable_scope”);
的属性写入时间
变量。
cdflib.putAttrEntry (cdfid fieldAttrNum time_id,...“CDF_CHAR”,“观察时间”);cdflib.putAttrEntry (cdfid unitsAttrNum time_id,...“CDF_CHAR”,“小时”);
获取CDF文件信息
获取有关文件的信息cdflib.inquire
。这个函数对应于CDF库的C API例程,CDFinquireCDF
和CDFgetNumgAttributes
。
Info = cdflib.inquire(cdfid)
信息=带有字段的结构体:encoding: 'IBMPC_ENCODING' majority: 'ROW_MAJOR' maxRec: 2 numVars: 3 numvAttrs: 2 numgAttrs: 1
cdflib.inquire
返回一个结构数组,其中包含有关数据编码以及文件中变量和属性的数量的信息。
关闭CDF文件
关闭CDF文件cdflib.close
。这个函数对应于CDF库的C API例程,CDFcloseCDF
。您必须关闭CDF,以保证打开CDF后所做的所有修改都写入该文件。
cdflib.close (cdfid);