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 指定的每个维度的索引间隔写入数据。

示例

全部折叠

创建包含一个变量的 NetCDF 文件,然后将数据写入该变量。

创建包含名为 pi 的变量的新文件 myfile.nc

nccreate('myfile.nc','pi');

将没有维度的标量数据写入变量 pi

ncwrite('myfile.nc','pi',3.1416);

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

valPi = ncread('myfile.nc','pi')
valPi = 3.1416

将数据写入 NetCDF 文件中一个变量的一部分,从指定位置开始。

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

nccreate('myncfile.nc','vmark',...
         'Dimensions', {'x',3,'y',6},...
         'FillValue','disable');     

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

ncwrite('myncfile.nc','vmark',3*eye(3));
varData = ncread('myncfile.nc','vmark');
display(varData)
varData = 3×6

     3     0     0     0     0     0
     0     3     0     0     0     0
     0     0     3     0     0     0

将另一个 3×3 数组添加到变量 vmark ,从第一行的第四列开始。接下来,从文件中读取并显示 vmarkncwrite 函数从 [1 4] 位置开始写入该数组。

ncwrite('myncfile.nc','vmark',5*eye(3),[1 4]);
varData = ncread('myncfile.nc','vmark');
display(varData)
varData = 3×6

     3     0     0     5     0     0
     0     3     0     0     5     0
     0     0     3     0     0     5

在每个维度上以指定的变量索引间距写入数据。

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

nccreate('myncfile.nc','vmark',...
         'Dimensions', {'x',6,'y',6},...
         'FillValue','disable'); 

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

ncwrite('myncfile.nc','vmark',3*eye(3),[1 1],[2 2]);
varData = ncread('myncfile.nc','vmark');
display(varData)
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 函数创建它们。

数据类型: char | string

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

数据类型: char | string

变量数据,指定为数值数据或文本。

注意

对于类型为 NC_CHAR 的变量,vardata 只能包含 ASCII 编码的字符。NetCDF-4 文件支持在类型为 NC_STRING 的变量中写入 UTF-8 编码的字符。

如果变量 varname 已存在,则 ncwrite 会要求 vardata 的数据类型与 NetCDF 变量的数据类型相同。

如果变量 varname 具有 _FillValuescale_factoradd_offset 属性,则 ncwrite 函数会要求数据的数据类型为 double。要将 vardata 转换为 NetCDF 数据类型,ncwrite 函数会按以下顺序应用这些属性约定:

  1. vardata 减去 add_offset 属性的值。

  2. vardata 除以 scale_factor 属性值。

  3. vardata 中的任何 NaN 值替换为 _FillValue 属性中包含的值。如果此属性不存在,ncwrite 将使用 NetCDF 库为此变量指定的填充值。

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

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

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

数据类型: double

沿每个维度读取变量数据时的变量索引间距,指定为由整数组成的数值向量。对于 N 维变量,stride 是长度为 N 的向量。stride 向量的元素按顺序对应于变量的维度。值为 1 表示写入对应维度中 NetCDF 变量的相邻值。而值为 2 则表示隔值写入对应维度中 NetCDF 变量的值,依此类推。

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

数据类型: double

版本历史记录

在 R2011a 中推出

全部展开