ncwriteatt
向 netCDF 文件写入属性
语法
说明
ncwriteatt(
创建或修改 filename
,location
,attname
,attvalue
)filename
所指定的 netCDF 文件中由 location
确定的组或变量中由 attname
指定的属性。写入的属性值属于与 MATLAB® 的 attvalue
数据类型最匹配的 netCDF 数据类型。有关 MATLAB 如何确定最佳匹配的详细信息,请参阅MATLAB 到 NetCDF 数据类型的转换。
示例
创建全局属性
创建 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'
将非 ASCII 数据作为属性写入
创建 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"
输入参数
filename
— 文件名
字符串标量 | 字符向量
location
— 变量或组的位置
字符串标量 | 字符向量
netCDF 文件中变量或组的位置,指定为字符串标量或字符向量。要写入全局属性,请将 location
设置为 "/"
(正斜杠)。
示例: "myVar"
示例: "/myGrp/mySubGrp/myNestedVar"
示例: "myGrp"
示例: "/myGrp/mySubGrp"
attname
— 属性名称
字符串标量 | 字符向量
要写入的属性名称,指定为字符串标量或字符向量。
示例: "myAttribute"
attvalue
— 属性值
数值数组 | 文本
属性值,指定为数值数组或文本。
注意
如果 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
dtype
— MATLAB 数据类型
"double"
| "single"
| "int32"
| ...
写入属性时使用的 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 数据类型 |
---|---|
double | NC_DOUBLE |
single | NC_FLOAT |
int32 | NC_INT |
int16 | NC_SHORT |
int8 | NC_BYTE |
char | NC_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 中推出R2021b: 写入 NC_STRING
属性
您可以将 NC_STRING
属性写入 netCDF-4 文件。
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)