Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

h5read

从 HDF5 数据集读取数据

说明

data = h5read(filename,ds) 读取 HDF5 文件 filename 中包含的数据集 ds 中的所有数据。

示例

data = h5read(filename,ds,start,count) 在数据集中从 start 指定的位置开始读取数据子集。count 参量指定沿每个维度读取的元素数。

示例

data = h5read(filename,ds,start,count,stride)stride 所指定的数据集各维度索引间隔返回数据子集。

示例

示例

全部折叠

从 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 文件 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 文件 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              

输入参数

全部折叠

现有 HDF5 文件的文件名,指定为字符串标量或字符向量。

根据文件的位置,filename 可以采用下列形式之一。

位置

形式

当前文件夹

指定 filename 中文件的名称。

示例:"myFile.h5"

其他文件夹

如果该文件不在当前文件夹或 MATLAB® 路径下的文件夹中,则在 filename 中指定完整或相对路径。

示例:"C:\myFolder\myFile.h5"

示例:"myFolder\myFile.h5"

远程位置

如果文件存储在远程位置,则 filename 必须包含指定为统一资源定位器 (URL) 形式的文件的完整路径:

scheme_name://path_to_file/filename

根据您的远程位置,scheme_name 可以是下表中的值之一。

远程位置scheme_name
Amazon S3™s3
Windows Azure® Blob 存储wasb, wasbs
HDFS™hdfs

有关详细信息,请参阅处理远程数据

示例:"s3://myBucket/myFolder/myFile.h5"

  • 如果您的文件包含多个使用 Family 驱动的物理文件,请使用格式设定符指定 filename。例如,要将 Family 驱动用于两个文件 family0.h5family1.h5,请将 filename 指定为 "family%d.h5"

  • 如果您的文件包含多个使用 Multi 驱动或 Split 驱动的物理文件,请指定 filename 作为物理文件名的前缀。例如,要将 Multi 驱动用于六个文件 multi-b.h5multi-g.h5multi-l.h5multi-o.h5multi-r.h5multi-s.h5,请将 filename 指定为 "multi"

数据集名称,指定为字符向量或字符串标量,其中包含 HDF5 文件中数据集的名称。HDF5 数据集包含数据元素的多维数组以及支持元数据。

起始位置,指定为由正整数组成的数值向量。对于 N 维数据集,start 是长度为 N 的向量,其中包含从 1 开始的索引。start 的元素按顺序对应于变量维度。

如果未指定 start,则 h5read 函数将从每个维度的第一个索引开始读取数据集。

要读取的元素数,指定为由正整数组成的数值向量。对于 N 维数据集,count 是长度为 N 的向量,用于指定要沿每个维度读取的元素数。count 的元素按顺序对应于变量维度。如果 count 的任一元素是 Inf,则 h5read 将一直读取,直到对应维度的末尾。

如果未指定 count,则 h5read 函数将一直读取数据,直到每个维度的末尾。

沿数据集的每个维度读取数据时的索引间距,指定为由整数组成的数值向量。对于数据集中的 N 维变量,stride 是长度为 N 的向量。stride 向量的元素按顺序对应于变量维度。值为 1 表示在对应维度中连续访问变量的相邻值,值为 2 表示在对应维度中每隔一个变量值访问一个值,依此类推。

如果未指定 stride,则 h5read 函数将沿每个维度以默认间距 1 读取数据。

局限性

  • h5read 不支持读取对组的引用。

版本历史记录

在 R2011a 中推出

全部展开