ncread
读取 NetCDF 数据源中的变量数据
语法
说明
示例
读取 NetCDF 数据
从文件 example.nc
中读取并绘制名为 peaks
的变量。
peaksData = ncread('example.nc','peaks'); whos peaksData
Name Size Bytes Class Attributes peaksData 50x50 5000 int16
绘制 peaksData
并添加标题。
surf(double(peaksData));
title('Peaks Data');
从变量中读取部分数据
仅读取并绘制变量数据的一部分,即从位置 [25 17]
开始直到每个维度的末尾。
startLoc = [25 17]; % Start location along each coordinate count = [Inf Inf]; % Read until the end of each dimension peaksData = ncread('example.nc','peaks',startLoc,count); whos peaksData
Name Size Bytes Class Attributes peaksData 26x34 1768 int16
绘制数据图。
surf(double(peaksData));
title('Peaks Data Starting at [25 17]');
以指定的变量索引间距读取数据
读取并绘制数据,读数据时在每个维度上均按指定的变量索引间距进行采样。从 startLoc
中的位置开始读取并以 stride
中指定的间隔读取变量数据。stride
中的值为 1
表示在对应维度连续访问相邻值;值为 2
表示在对应维度中每隔一个值访问一个值,依此类推。
startLoc = [1 1]; count = [10 15]; stride = [2 3]; sampledPeaksData = ncread('example.nc','peaks',startLoc,count,stride); whos sampledPeaksData
Name Size Bytes Class Attributes sampledPeaksData 10x15 300 int16
绘制数据图。
surf(double(sampledPeaksData));
title('Peaks Data Subsampled by [2 3]');
输入参数
source
— NetCDF 数据源的名称
字符串标量 | 字符向量
NetCDF 数据源的名称,指定为字符串标量或字符向量。source
参数可以是以下值之一:
本地 NetCDF 源的路径
远程 OPeNDAP NetCDF 数据源的 OPeNDAP URL
远程 NetCDF 源的 HTTP URL,在 URL 的末尾附加
#mode=bytes
以支持字节范围读取注意
字节范围读取比从其他来源读取要慢。有关字节范围读取的更多详细信息,请参阅 NetCDF 文档。
示例: "myNetCDFfile.nc"
varname
— 变量名称
字符串标量 | 字符向量
变量名称,指定为包含 NetCDF 数据源中变量名称的字符串标量或字符向量。
数据类型: string
| char
start
— 起始位置
由 1 组成的向量 (默认) | 数值向量
起始位置,指定为由正整数组成的数值向量。对于 N 维变量,start
是长度为 N 的向量,其中包含从 1 开始的索引。
如果未指定 start
,则 ncread
函数将从每个维度的第一个索引开始读取变量。
数据类型: double
count
— 元素数量
由 Inf
组成的向量 (默认) | 数值向量
要读取的元素数,指定为由正整数组成的数值向量。对于 N 维变量,count
是长度为 N 的向量,用于指定要沿每个维度读取的元素数。如果 count
的任一元素是 Inf
,则 ncread
将一直读取,直到对应维度的末尾。
如果未指定 count
,则 ncread
函数将读取变量数据,直到每个维度的末尾。
数据类型: double
stride
— 变量索引之间的间距
由 1 组成的向量 (默认) | 数值向量
沿每个维度读取变量数据时的变量索引间距,指定为由整数组成的数值向量。对于 N 维变量,stride
是长度为 N 的向量。stride
向量的元素按顺序对应于变量的维度。值为 1
表示访问对应维度中 NetCDF 变量的相邻值。而值为 2
则表示隔值访问对应维度中 NetCDF 变量的值,依此类推。
如果未指定 stride
,则 ncread
函数将沿每个维度以默认间距 1
读取数据。
数据类型: double
输出参数
vardata
— 变量数据
数值 | 文本 | 元胞
变量数据,以与 varname
的 NetCDF 数据类型最匹配的数据类型形式返回。有关 MATLAB® 如何确定最佳匹配的详细信息,请参阅详细信息。
对于数值数据类型,当存在 _FillValue
、scale_factor
或 add_offset
中的至少一个变量属性时,ncread
将返回 double
类型的 vardata
。此外,ncread
适用以下约定:
如果
_FillValue
属性存在,则ncread
将等于_FillValue
的vardata
值替换为NaN
。如果_FillValue
属性不存在,则ncread
将在 NetCDF 库中查询该变量的填充值。如果
scale_factor
属性存在,则ncread
会将变量数据乘以scale_factor
属性的值。如果
add_offset
属性存在,则ncread
会将变量数据加上add_offset
属性的值。
注意
对于 NC_CHAR
类型的变量,ncread
函数支持读取只包含 ASCII 编码字符的 vardata
。支持从 NetCDF-4
文件中 NC_STRING
类型的变量读取 UTF-8
编码的字符。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| cell
| char
| string
详细信息
NetCDF 到 MATLAB 数据类型的转换
NetCDF 相关的 MATLAB 函数根据此表自动选择与 NetCDF 数据类型最匹配的 MATLAB 数据类型。
NetCDF 数据类型 | MATLAB 数据类型 |
---|---|
NC_DOUBLE | double |
NC_FLOAT | single |
NC_INT64 (仅限 NetCDF-4 文件) | int64 |
NC_UINT64 (仅限 NetCDF-4 文件) | uint64 |
NC_INT | int32 |
NC_UINT (仅限 NetCDF-4 文件) | uint32 |
NC_SHORT | int16 |
NC_USHORT (仅限 NetCDF-4 文件) | uint16 |
NC_BYTE | int8 |
NC_UBYTE (仅限 NetCDF-4 文件) | uint8 |
NC_CHAR | char |
NC_STRING (仅限 NetCDF-4 文件) | string |
用户定义的 NC_VLEN 类型(仅限 NetCDF-4 文件) | cell |
版本历史记录
在 R2011a 中推出R2022a: 远程数据集的字节范围读取
只要远程服务器支持字节范围访问,您就可以使用 ncread
通过 HTTP 字节范围功能对远程数据集进行只读访问。
R2022a: 读取可变长度数组数据类型 (NC_VLEN
)
您可以从 netCDF-4 文件中读取可变长度的数组数据类型 (NC_VLEN
)。
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)