Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

ncwriteatt

向 netCDF 文件写入属性

    说明

    ncwriteatt(filename,location,attname,attvalue) 创建或修改 filename 所指定的 netCDF 文件中由 location 确定的组或变量中由 attname 指定的属性。写入的属性值属于与 MATLAB®attvalue 数据类型最匹配的 netCDF 数据类型。有关 MATLAB 如何确定最佳匹配的详细信息,请参阅MATLAB 到 NetCDF 数据类型的转换

    示例

    ncwriteatt(filename,location,attname,attvalue,"Datatype",dtype)attvalue 作为由 dtype 指定的数据类型写入。例如,将 dtype 指定为 "string" 以将 attvalue 中的值作为字符串写入。

    示例

    示例

    全部折叠

    创建 example.nc 文件的可写本地副本,并检查其全局 creation_date 属性的值。

    copyfile(which("example.nc"),"myfile.nc")
    fileattrib("myfile.nc","+w")
    creationDate = ncreadatt("myfile.nc","/","creation_date")
    creationDate = 
    '29-Mar-2010'
    

    创建一个 modification_date 属性,将其设置为当前日期,并验证其值。

    ncwriteatt("myfile.nc","/","modification_date",datestr(datetime("now")))
    modificationDate = ncreadatt("myfile.nc","/","modification_date")
    modificationDate = 
    '12-Feb-2024 22:52:08'
    

    创建 example.nc 文件的可写本地副本,并检查 peaks 变量的 description 属性的值。

    copyfile(which("example.nc"),"myfile.nc")
    fileattrib("myfile.nc","+w")
    oldDescription = ncreadatt("myfile.nc","peaks","description")
    oldDescription = 
    'z = peaks(50);'
    

    更新属性并验证其新值。

    ncwriteatt("myfile.nc","peaks","description","Output of PEAKS")
    newDescription = ncreadatt("myfile.nc","peaks","description")
    newDescription = 
    'Output of PEAKS'
    

    创建 example.nc 文件的可写本地副本。

    copyfile(which("example.nc"),"myfile.nc")
    fileattrib("myfile.nc","+w")

    将字符串数组 ["°F" "°C"] 作为变量 /grid1/temp 的新属性 Units 的值写入。该数组包含非 ASCII 字符串数据,只有 netcdf4 格式的文件才支持此类数据。

    ncwriteatt("myfile.nc","/grid1/temp","Units",["°F" "°C"])

    验证新属性的值。

    ncreadatt("myfile.nc","/grid1/temp","Units")
    ans = 1x2 string
        "°F"    "°C"
    
    

    使用名为 Calendar 的变量创建一个 netCDF-4 格式的文件。然后,通过将数据类型指定为 "string",将字符向量 'July' 作为 NC_STRING 类型写入名为 Months 的属性。默认情况下,ncwriteatt 将标量文本数据作为 NC_CHAR 类型写入。

    nccreate("myfile.nc","Calendar","Format","netcdf4")
    ncwriteatt("myfile.nc","Calendar","Months",'July',"Datatype","string")

    验证新属性的值和数据类型。

    ncreadatt("myfile.nc","Calendar","Months")
    ans = 
    "July"
    

    输入参数

    全部折叠

    现有 netCDF 文件的文件名,指定为字符串标量或字符向量。

    如果 netCDF 文件不存在,则首先使用 nccreate 函数创建它。

    示例: "myFile.nc"

    netCDF 文件中变量或组的位置,指定为字符串标量或字符向量。要写入全局属性,请将 location 设置为 "/"(正斜杠)。

    示例: "myVar"

    示例: "/myGrp/mySubGrp/myNestedVar"

    示例: "myGrp"

    示例: "/myGrp/mySubGrp"

    要写入的属性名称,指定为字符串标量或字符向量。

    示例: "myAttribute"

    属性值,指定为数值数组或文本。

    注意

    如果 attvalue 有多个维度,则 ncwriteatt 函数会在写入属性值之前按列优先顺序扁平化 attvalue。例如,将 attvalue 指定为 [1 2 3; 4 5 6] 和将 attvalue 指定为 [1 4 2 5 3 6] 具有相同的作用。

    数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | char | string

    写入属性时使用的 MATLAB 数据类型,指定为下表中的值之一。当 ncwriteatt 在 netCDF 文件中创建或修改属性时,它使用对应的 netCDF 数据类型。

    dtype 的值NetCDF 属性类型
    "double"NC_DOUBLE
    "single"NC_FLOAT
    "int32"NC_INT
    "int16"NC_SHORT
    "int8"NC_BYTE
    "char"NC_CHAR
    "int64" (*)NC_INT64
    "uint64" (*)NC_UINT64
    "uint32" (*)NC_UINT
    "uint16" (*)NC_USHORT
    "uint8" (*)NC_UBYTE
    "string" (*)NC_STRING

    (*) dtype 的这些值仅适用于 netcdf4 格式的文件。

    示例: "int16"

    数据类型: string | char

    详细信息

    全部折叠

    MATLAB 到 NetCDF 数据类型的转换

    netCDF 相关的 MATLAB 函数根据此表自动选择与 MATLAB 数据类型最匹配的 netCDF 数据类型。

    MATLAB 数据类型NetCDF 数据类型
    doubleNC_DOUBLE
    singleNC_FLOAT
    int32NC_INT
    int16NC_SHORT
    int8NC_BYTE
    charNC_CHAR
    string 标量NC_CHAR
    int64 (*)NC_INT64
    uint64 (*)NC_UINT64
    uint32 (*)NC_UINT
    uint16 (*)NC_USHORT
    uint8 (*)NC_UBYTE
    string 向量 (*)NC_STRING

    (*) 这些 MATLAB 数据类型仅适用于 netcdf4 格式的文件。

    版本历史记录

    在 R2011a 中推出

    全部展开