Main Content

netcdf.getVar

读取 netCDF 变量中的数据

语法

data = netcdf.getVar(ncid,varid)
data = netcdf.getVar(ncid,varid,start)
data = netcdf.getVar(ncid,varid,start,count)
data = netcdf.getVar(ncid,varid,start,count,stride)
data = netcdf.getVar(___,output_type)

说明

data = netcdf.getVar(ncid,varid) 返回 data,即由 varid 指定的变量值。ncid 是由 netcdf.createnetcdf.open 返回的 NetCDF 文件标识符。返回值 data 属于与 varid 指定的变量的 NetCDF 数据类型最匹配的 MATLAB® 数据类型。有关 MATLAB 如何确定最佳匹配的详细信息,请参阅详细信息

注意

如果由 varid 指定的变量的类型为 NC_STRING,则它可以包含 UTF-8 编码的字符;如果 varid 指定的变量的类型为 NC_CHAR,则它只能包含 ASCII 编码的字符。

data = netcdf.getVar(ncid,varid,start) 返回从指定索引 start 开始的单精度值。

data = netcdf.getVar(ncid,varid,start,count) 返回变量的连续区间。start 指定起始点,并且 count 指定要返回的数据量。

data = netcdf.getVar(ncid,varid,start,count,stride) 返回变量区间子集。start 指定起始点,count 指定区间长度,stride 指定返回哪些值。

data = netcdf.getVar(___,output_type) 指定返回值 data 的数据类型。可将 output_type 指定为以下值之一:

  • "double"

  • "single"

  • "int64"

  • "uint64"

  • "int32"

  • "uint32"

  • "int16"

  • "uint16"

  • "int8"

  • "uint8"

  • "char"

此函数对应于 NetCDF 库 C API 中的几个函数。要使用此函数,应该熟悉 NetCDF 编程范式。

示例

全部折叠

打开该示例文件 example.nc

ncid = netcdf.open('example.nc','NC_NOWRITE');

获取文件中第一个变量的名称。

varname = netcdf.inqVar(ncid,0)
varname = 
'avagadros_number'

获取第一个变量的变量 ID,并给定其名称。

varid = netcdf.inqVarID(ncid,varname)
varid = 0

获取该变量的值。使用变量 ID 作为 netcdf.getVar 函数的第二个输入。

data = netcdf.getVar(ncid,varid)
data = 6.0221e+23

显示输出值的数据类型。

whos data
  Name      Size            Bytes  Class     Attributes

  data      1x1                 8  double              

重新获取 avogadros_number 变量的值,并指定输出数据类型应为 single

data = netcdf.getVar(ncid,varid,'single');

显示输出值的数据类型。

whos data
  Name      Size            Bytes  Class     Attributes

  data      1x1                 4  single              

关闭 NetCDF 文件。

netcdf.close(ncid)

详细信息

全部折叠

NetCDF 到 MATLAB 数据类型的转换

如果未指定可选输入 output_type,则 netcdf.getVar 会根据下表自动选择与 NetCDF 数据类型最匹配的 MATLAB 数据类型。

NetCDF 数据类型MATLAB 数据类型
NC_DOUBLEdouble
NC_FLOATsingle
NC_INTint32
NC_SHORTint16
NC_BYTEint8
NC_CHARchar
NC_STRING (*)string
NC_INT64 (*)int64
NC_UINT64 (*)uint64
NC_UINT (*)uint32
NC_USHORT (*)uint16
NC_UBYTE (*)uint8
用户定义的 NC_VLEN 类型 (*)cell

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

提示

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

版本历史记录

在 R2008b 中推出

全部展开