nccreate
在 netCDF 文件中创建变量
说明
nccreate(
使用由一个或多个名称-值参量指定的附加选项创建一个变量。例如,要创建非标量变量,请使用 filename
,varname
,Name,Value
)Dimensions
名称-值参量。
示例
在 NetCDF 文件中创建变量
创建一个名为 myexample.nc
的 netCDF 文件,其中包含名为 Var1
的变量。
nccreate("myexample.nc","Var1")
在同一文件中创建另一个变量。
nccreate("myexample.nc","Var2")
显示 netCDF 文件的内容。
ncdisp("myexample.nc")
Source: pwd\myexample.nc Format: netcdf4_classic Variables: Var1 Size: 1x1 Dimensions: Datatype: double Var2 Size: 1x1 Dimensions: Datatype: double
指定维度和文件格式
在名为 myncclassic.nc
的 netCDF-3 经典格式文件中创建一个名为 peaks
的二维变量。使用 Dimensions
名称-值参量指定每个维度的名称和长度。使用 Format
名称-值参量指定文件格式。
nccreate("myncclassic.nc","peaks", ... "Dimensions",{"r",300,"c",400},"Format","classic")
向变量中写入数据。
ncwrite("myncclassic.nc","peaks",peaks(100))
显示 netCDF 文件的内容。
ncdisp("myncclassic.nc")
Source: pwd\myncclassic.nc Format: classic Dimensions: r = 300 c = 400 Variables: peaks Size: 300x400 Dimensions: r,c Datatype: double
输入参数
filename
— 文件名
字符串标量 | 字符向量
文件名,指定为字符串标量或字符向量。指定一个现有 netCDF 文件的名称,或指定要分配给新 netCDF 文件的名称。
示例: "myFile.nc"
varname
— 新变量的名称
字符串标量 | 字符向量
新变量的名称,指定为字符串标量或字符向量。
如果 filename
指定格式为 netcdf4
的文件,您可以通过将 varname
指定为完全限定名称来指定新变量在组层次结构中的位置。在本例中,nccreate
根据需要创建新组,以将新变量放在层次结构中的指定位置。
示例: "myVar"
示例: "/myGrp/mySubGrp/myNestedVar"
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
示例: nccreate("myFile.nc","Var1",Datatype="double",Format="classic")
在名为 myFile.nc
的 netCDF-3 经典文件中创建一个名为 Var1
的 NC_DOUBLE
类型变量。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: nccreate("myFile.nc","Var1","Datatype","double","Format","classic")
Dimensions
— 变量的维度
元胞数组
新变量的维度,指定为元胞数组。该元胞数组以字符串标量或字符向量的形式列出维度名称,并在其后以下列格式列出其数值长度:{dname1,dlength1,dname2,dlength2,...,dnameN,dlengthN}
。dname1
条目是第一个维度的名称,dlength1
是第一个维度的长度,指定为非负整数或 Inf
。同样,dname2
是第二个维度的名称,dlength2
是第二个维度的长度,依此类推。具有单个维度的变量被视为一个列向量。
对于已存在的维度,指定长度是可选操作。如果指定现有维度的长度,则它必须与当前长度匹配。
使用维度长度 Inf
或 0
来指定无限维度。格式为 netcdf4
的文件可以有任意数量、任意顺序的无限维度;对于所有其他格式,每个文件只能有一个无限维度,而且它必须指定为元胞数组中的最后一个维度。
nccreate
在变量所在的位置创建该维度。对于具有 netcdf4
格式的文件,您可以使用完全限定维度名为该维度指定不同位置。
示例: "Dimensions",{"dim1",100,"/mygroup/dim2",150,"dim3",Inf}
数据类型: cell
Datatype
— MATLAB® 数据类型
"double"
(默认) | "single"
| "int32"
| ...
MATLAB 数据类型,指定为下表中的值之一。当 nccreate
在 netCDF 文件中创建一个变量时,它会使用对应的 netCDF 数据类型。
Datatype 的值 | NetCDF 变量类型 |
---|---|
"double" | NC_DOUBLE |
"single" | NC_FLOAT |
"int32" | NC_INT |
"int16" | NC_SHORT |
"int8" | NC_BYTE |
"char" | NC_CHAR |
"uint64" (*) | NC_UINT64 |
"int64" (*) | NC_INT64 |
"uint32" (*) | NC_UINT |
"uint16" (*) | NC_USHORT |
"uint8" (*) | NC_UBYTE |
"string" (*) | NC_STRING |
(*) Datatype
的这些值仅适用于 netcdf4
格式的文件。
示例: "Datatype","int16"
数据类型: string
| char
Format
— NetCDF 文件的格式
"netcdf4_classic"
(默认) | "netcdf4"
| "classic"
| "64bit"
NetCDF 文件格式,指定为下列值之一。
Format 的值 | 描述 |
---|---|
"classic" | netCDF-3 |
"64bit" | netCDF-3,带 64 位偏移 |
"netcdf4_classic" | netCDF-4 经典模型 |
"netcdf4" | netCDF-4(使用此格式来启用组层次结构) |
如果 varname
指定组(例如 "/grid3/temperature"
),则 nccreate
将 Format
的值设置为 "netcdf4"
。
示例: "Format","64bit"
数据类型: string
| char
FillValue
— 缺失值的替换值
标量 | "disable"
缺失值的替换值,指定为标量或 "disable"
。默认值由 netCDF 库提供。要禁用替换值,请指定值 "disable"
。在将字符串数据写入格式为 netcdf4
的文件时,您无法禁用 FillValue
。
注意
nccreate
函数将 FillValue
的值赋给新的 netCDF 变量 varname
的 _FillValue
属性。在创建该变量后,您无法更改此属性的值。
此参量仅适用于格式为 netcdf4
或 netcdf4_classic
的文件。
示例: "FillValue",0
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| char
| string
ChunkSize
— 沿每个维度的块大小。
数值向量
沿每个维度的块大小,指定为数值向量。第一个元素指定行数,第二个元素指定列数,第三个元素指定第三个维度的长度,等等。默认值由 netCDF 库提供。
此参量仅适用于格式为 netcdf4
或 netcdf4_classic
的文件。
示例: "ChunkSize",[5 6 9]
数据类型: double
DeflateLevel
— 压缩的级别
0
(默认) | 介于 0
和 9
之间的整数标量值
压缩级别,指定为 0
和 9
之间的整数标量值。值 0
表示无压缩。值 1
表示最小压缩,值 9
表示最大压缩。如果 Datatype
是 "string"
,则无法设置 DeflateLevel
。
此参量仅适用于格式为 netcdf4
或 netcdf4_classic
的文件。
示例: "DeflateLevel",5
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Shuffle
— Shuffle 过滤器的状态
false
或 0
(默认) | true
或 1
Shuffle 过滤器的状态,指定为数值或逻辑值 0
(false
) 或 1
(true
)。值 false
表示禁用 Shuffle 过滤器,true
表示启用它。shuffle 过滤器通过改变数据流中的字节顺序来辅助整型数据的压缩。如果 Datatype
是 "string"
,则无法启用 Shuffle 过滤器。
此参量仅适用于格式为 netcdf4
或 netcdf4_classic
的文件。
示例: "Shuffle",true
数据类型: logical
提示
MATLAB 将多维数据解释为列优先数据,但 netCDF C API 将多维数据解释为行优先数据。netCDF C API 中的多维数据以与 MATLAB 所示顺序相反的顺序显示维度,因此显示为转置。
版本历史记录
在 R2011a 中推出R2023b: 将 DeflateLevel
设置为 0
会禁用 deflate 过滤器
将压缩级别设置为零会禁用 deflate 过滤器。先前,deflate 过滤器可以在压缩级别为零的情况下启用。
R2023b: 仅对固定长度的数据类型使用压缩和 Shuffle 过滤器
压缩和 shuffle 过滤器只能用于固定长度的数据类型,如果应用于 NC_STRING
类型的变量,则会生成错误。先前,如果您为 NC_STRING
变量指定压缩或 Shuffle 过滤器,则该设定不起作用。
R2021b: 定义 NC_STRING
数据
您可以在 netCDF-4 文件中定义 NC_STRING
数据。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)