h5read
从 HDF5 数据集读取数据
语法
说明
示例
读取整个 HDF5 数据集
从 HDF5 文件中获取数据集的元数据,然后读取数据集。
显示来自 HDF5 文件 example.h5
的数据集 /g4/lat
的元数据。
h5disp('example.h5','/g4/lat')
HDF5 example.h5 Dataset 'lat' Size: 19 MaxSize: 19 Datatype: H5T_IEEE_F64LE (double) ChunkSize: [] Filters: none FillValue: 0.000000 Attributes: 'units': 'degrees_north' 'CLASS': 'DIMENSION_SCALE' 'NAME': 'lat'
读取数据集。
data = h5read('example.h5','/g4/lat')
data = 19×1
-90
-80
-70
-60
-50
-40
-30
-20
-10
0
⋮
读取 HDF5 数据集的子集
从 HDF5 文件中获取数据集的元数据,然后读取数据集的子集。
显示来自 HDF5 文件 example.h5
的数据集 /g4/world
的元数据。
h5disp('example.h5','/g4/world')
HDF5 example.h5 Dataset 'world' Size: 36x19 MaxSize: 36x19 Datatype: H5T_IEEE_F64LE (double) ChunkSize: [] Filters: none FillValue: 0.000000
从数据的开头开始,从数据集中读取一个 5×3 数据子集。
start = [1 1]; count = [5 3]; data = h5read('example.h5','/g4/world',start,count)
data = 5×3
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
读取具有指定索引间距的 HDF5 数据集
从数据集中读取数据,读取数据时在每个维度上均按指定的数据集索引间距进行采样。
首先,显示来自 HDF5 文件 example.h5
的数据集 /g4/lon
的元数据。数据集中的变量有一个维度包含 36 个元素。
h5disp('example.h5','/g4/lon')
HDF5 example.h5 Dataset 'lon' Size: 36 MaxSize: 36 Datatype: H5T_IEEE_F64LE (double) ChunkSize: [] Filters: none FillValue: 0.000000 Attributes: 'units': 'degrees_east' 'CLASS': 'DIMENSION_SCALE' 'NAME': 'lon'
从 startLoc
中的位置开始读取并以 stride
中指定的间隔读取变量数据。stride
中的值为 1
表示在对应维度连续访问相邻值,而值为 2
表示在对应维度中每隔一个值访问一个值,依此类推。
startLoc = 1; count = 18; stride = 2; subsetData = h5read('example.h5','/g4/lon',startLoc,count,stride);
检查输出变量 subsetData
。
whos subsetData
Name Size Bytes Class Attributes subsetData 18x1 144 double
输入参数
filename
— 文件名
字符串标量 | 字符向量
现有 HDF5 文件的文件名,指定为字符串标量或字符向量。
根据文件的位置,filename
可以采用下列形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 指定 示例: | ||||||||
其他文件夹 | 如果该文件不在当前文件夹或 MATLAB® 路径下的文件夹中,则在 示例: 示例: | ||||||||
远程位置 | 如果文件存储在远程位置,则
根据您的远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
如果您的文件包含多个使用 Family 驱动的物理文件,请使用格式设定符指定
filename
。例如,要将 Family 驱动用于两个文件family0.h5
和family1.h5
,请将filename
指定为"family%d.h5"
。如果您的文件包含多个使用 Multi 驱动或 Split 驱动的物理文件,请指定
filename
作为物理文件名的前缀。例如,要将 Multi 驱动用于六个文件multi-b.h5
、multi-g.h5
、multi-l.h5
、multi-o.h5
、multi-r.h5
和multi-s.h5
,请将filename
指定为"multi"
。
ds
— 数据集名称
字符向量 | 字符串标量
数据集名称,指定为字符向量或字符串标量,其中包含 HDF5 文件中数据集的名称。HDF5 数据集包含数据元素的多维数组以及支持元数据。
start
— 起始位置
由 1 组成的向量 (默认) | 数值向量
起始位置,指定为由正整数组成的数值向量。对于 N
维数据集,start
是长度为 N
的向量,其中包含从 1 开始的索引。start
的元素按顺序对应于变量维度。
如果未指定 start
,则 h5read
函数将从每个维度的第一个索引开始读取数据集。
count
— 元素数量
由 Inf
组成的向量 (默认) | 数值向量
要读取的元素数,指定为由正整数组成的数值向量。对于 N
维数据集,count
是长度为 N
的向量,用于指定要沿每个维度读取的元素数。count
的元素按顺序对应于变量维度。如果 count
的任一元素是 Inf
,则 h5read
将一直读取,直到对应维度的末尾。
如果未指定 count
,则 h5read
函数将一直读取数据,直到每个维度的末尾。
stride
— 索引之间的间距
由 1 组成的向量 (默认) | 数值向量
沿数据集的每个维度读取数据时的索引间距,指定为由整数组成的数值向量。对于数据集中的 N
维变量,stride
是长度为 N
的向量。stride
向量的元素按顺序对应于变量维度。值为 1
表示在对应维度中连续访问变量的相邻值,值为 2
表示在对应维度中每隔一个变量值访问一个值,依此类推。
如果未指定 stride
,则 h5read
函数将沿每个维度以默认间距 1
读取数据。
局限性
h5read
不支持读取对组的引用。
版本历史记录
在 R2011a 中推出R2020b: 从远程位置的 HDF5 文件中读取数据
您可以从远程位置(例如 Amazon S3、Windows Azure Blob 存储和 HDFS)的 HDF5 文件中读取数据。
R2020b: 从具有 Unicode 名称的 HDF5 文件中读取数据
您可以从其名称以 Unicode 字符编码的 HDF5 文件中读取数据。
R2020a: 将非标量字符串数据作为 MATLAB 字符串数组读取
h5read
将 HDF5 字符串数组返回为 MATLAB 字符串数组,而不是字符向量元胞数组。单精度(标量)HDF5 字符串以 MATLAB 字符向量形式返回。
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)