Main Content

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

ncwrite

将数据写入 netCDF 文件

    说明

    ncwrite(filename,varname,vardata)vardata 中的文本或数值数据写入 netCDF 文件 filename 中的现有变量 varname

    ncwrite 函数从变量起始位置开始写入 vardata 中的数据,如果需要,还会自动扩展无限维度。有关无限维度的详细信息,请参阅 nccreate 函数的 Dimensions 参量。

    示例

    ncwrite(filename,varname,vardata,start) 将数据写入一个现有变量,从 start 指定的位置开始。使用此语法将数据追加到现有变量或写入部分数据。

    示例

    ncwrite(filename,varname,vardata,start,stride)stride 指定的每个维度的索引间隔写入数据。

    示例

    示例

    全部折叠

    创建一个包含名为 c 的变量的文件 myfile.nc

    nccreate("myfile.nc","c")

    将一个标量值写入该变量。

    ncwrite("myfile.nc","c",299792458)

    从文件中读取并显示该变量。

    speedOfLight = ncread("myfile.nc","c")
    speedOfLight = 299792458
    

    使用一个空的 3×6 数值变量 vmark 创建文件 myfile.nc。要禁止对缺失或空的变量使用默认填充值,请将 FillValue 名称-值参量设置为 "disable"

    nccreate("myfile.nc","vmark", ...
             "Dimensions",{"x",3,"y",6},"FillValue","disable")

    将一个 3×3 数组写入该变量,然后从文件中读取并显示 vmarkncwrite 函数从变量的起始位置写入数据。

    ncwrite("myfile.nc","vmark",3*eye(3))
    varData = ncread("myfile.nc","vmark")
    varData = 3×6
    
         3     0     0     0     0     0
         0     3     0     0     0     0
         0     0     3     0     0     0
    
    

    将另一个 3×3 数组添加到变量 vmark,从第一行的第四列开始。ncwrite 函数从 [1 4] 位置开始写入该数组。

    ncwrite("myfile.nc","vmark",5*eye(3),[1 4])
    varData = ncread("myfile.nc","vmark")
    varData = 3×6
    
         3     0     0     5     0     0
         0     3     0     0     5     0
         0     0     3     0     0     5
    
    

    使用一个空的 6×6 数值变量 vmark 创建文件 myfile.nc。要禁止对缺失或空的变量使用默认填充值,请将 FillValue 名称-值参量设置为 "disable"

    nccreate("myfile.nc","vmark", ...
             "Dimensions", {"x",6,"y",6},"FillValue","disable") 

    接下来,将一个 3×3 数值数组写入变量 vmark,从位置 [1 1] 开始,每个维度上写入数据的变量索引间距为 2

    ncwrite("myfile.nc","vmark",3*eye(3),[1 1],[2 2])
    varData = ncread("myfile.nc","vmark")
    varData = 6×6
    
         3     0     0     0     0     0
         0     0     0     0     0     0
         0     0     3     0     0     0
         0     0     0     0     0     0
         0     0     0     0     3     0
         0     0     0     0     0     0
    
    

    输入参数

    全部折叠

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

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

    示例: "myFile.nc"

    变量名称,指定为包含 netCDF 文件中变量名称的字符串标量或字符向量。

    如果 filename 指定格式为 netcdf4 的文件,您可以通过将 varname 指定为完全限定名称来指定变量在组层次结构中的位置。

    如果变量不存在,则首先使用 nccreate 函数创建它。

    示例: "myVar"

    示例: "/myGrp/mySubGrp/myNestedVar"

    变量数据,指定为数值数组或文本。vardata 的值必须与 netCDF 变量 varname 的数据类型兼容。

    如果变量 varname 具有 _FillValuescale_factoradd_offset 属性,则 ncwrite 函数会要求数据与 double 数据类型兼容。要将 vardata 转换为 netCDF 数据类型,ncwrite 函数会在写入 vardata 之前,按以下顺序应用这些属性约定:

    1. 如果 add_offset 属性存在,则 ncwritevardata 中的值减去 add_offset 属性的值。

    2. 如果 scale_factor 属性存在,则 ncwritevardata 中的值除以 scale_factor 属性的值。

    3. 如果 _FillValue 属性存在,则 ncwrite 用与 _FillValue 属性相等的值替换 NaN vardata 值。

    注意

    对于 NC_STRING 类型的变量,vardata 可以包含 UTF-8 编码的字符;对于 NC_CHAR 类型的变量,vardata 只能包含 ASCII 编码的字符。

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

    变量中数据的起始位置,指定为正整数组成的数值向量。对于 N 维变量,将 start 指定为长度为 N 的向量,其中包含从 1 开始的索引。

    如果未指定 start,则 ncwrite 函数将沿每个维度从第一个索引开始写入变量。

    示例: [2 1 3]

    数据类型: double

    沿每个维度读取变量数据时的变量索引间距,指定为由整数组成的数值向量。对于一个 N 维变量,将 stride 指定为长度为 N 的向量。stride 向量的元素按顺序对应于变量的维度。值为 1 表示在对应维度中连续访问 netCDF 变量的相邻值,值为 2 表示在对应维度中每隔一个值访问一个值,依此类推。

    如果未指定 stride,则 ncwrite 函数将沿每个维度以默认间距 1 写入数据。

    示例: [2 10 1]

    数据类型: double

    提示

    • MATLAB® 将多维数据解释为列优先数据,但 netCDF C API 将多维数据解释为行优先数据。netCDF C API 中的多维数据以与 MATLAB 所示顺序相反的顺序显示维度,因此显示为转置。

    版本历史记录

    在 R2011a 中推出

    全部展开