这个例子展示了如何使用MATLAB®CDF低级函数将数据导出到CDF文件。MATLAB函数对应于CDF C API库中的例程。
要有效地使用MATLAB的CDF底层函数,必须熟悉CDF C接口。另外,CDF文件不支持非ascii编码的输入。金宝app因此,变量名、属性名、变量值和属性值必须使用7位的ASCII编码。
创建一个新的CDF文件my_file.cdf
使用cdflib.create
.这个函数对应于CDF库C API例程,CDFcreateCDF
.
cdfid = cdflib.create (“my_file.cdf”);
cdflib.create
返回文件标识符,cdfid
.
创建变量命名时间
和纬度
使用cdflib.createVar
.这个函数对应于CDF库C API例程,CDFcreatezVar
.
time_id = cdflib.createVar (cdfid,“时间”,“cdf_int4”1[],真的,[]);lat_id = cdflib.createVar (cdfid,“纬度”,“cdf_int2”, 1181年,真的,真的);
cdflib.createVar
为每个变量返回一个数字标识符。
创建一个名为图像
.
dimsize = [20 10];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);
将数据写入纬度
变量。
data = int16 ([90:90]);Recspec = [0 1 1];Dimspec = {0 181 1};cdflib.hyperPutVarData (cdfid lat_id、recspec dimspec,数据);
将数据写入图像
变量。
Recspec = [0 3 1];Dimspec = {[0 0], [20 10], [1 1]};数据=重塑(int32([0:599]), [20 10 3]);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”,“小时”);
获取关于使用的文件的信息cdflib.inquire
.这个函数对应于CDF库C API例程,CDFinquireCDF
和CDFgetNumgAttributes
.
信息= cdflib.inquire (cdfid)
信息=结构体字段:编码:'IBMPC_ENCODING' majority: 'ROW_MAJOR' maxRec: 2 numVars: 3 numvAttrs: 2 numgAttrs: 1
cdflib.inquire
返回一个结构数组,其中包含有关文件中的数据编码以及变量和属性的数量的信息。
关闭CDF文件使用cdflib.close
.这个函数对应于CDF库C API例程,CDFcloseCDF
.您必须关闭CDF,以确保自打开CDF以来所做的所有修改都被写入文件。
cdflib.close (cdfid);