h5create
创建 HDF5 数据集
说明
示例
创建固定大小的数据集
创建固定大小的 100×200×300 数据集 'myDataset'
,其完整路径指定为 '/g1/g2/myDataset'
。
h5create('myfile.h5','/g1/g2/myDataset',[100 200 300])
将数据写入 'myDataset'
。由于 'myDataset'
的维度是固定的,因此要写入其中的数据量必须与其大小相匹配。
mydata = ones(100,200,300); h5write('myfile.h5','/g1/g2/myDataset',mydata) h5disp('myfile.h5')
HDF5 myfile.h5 Group '/' Group '/g1' Group '/g1/g2' Dataset 'myDataset' Size: 100x200x300 MaxSize: 100x200x300 Datatype: H5T_IEEE_F64LE (double) ChunkSize: [] Filters: none FillValue: 0.000000
创建压缩数据集
创建一个单精度 1000×2000 数据集,并应用最高级别的压缩。应用 HDF5 压缩时必须使用块存储。
h5create('myfile.h5','/myDataset2',[1000 2000],'Datatype','single', ... 'ChunkSize',[50 80],'Deflate',9)
显示整个 HDF5 文件的内容。
h5disp('myfile.h5')
HDF5 myfile.h5 Group '/' Dataset 'myDataset2' Size: 1000x2000 MaxSize: 1000x2000 Datatype: H5T_IEEE_F32LE (single) ChunkSize: 50x80 Filters: deflate(9) FillValue: 0.000000
创建具有无限维度的数据集
创建二维数据集 '
/myDataset3'
,该数据集在第二个维度是无限的。必须指定 ChunkSize
,才能将数据集的任何维度设置为 Inf
h5create('myfile.h5','/myDataset3',[200 Inf],'ChunkSize',[20 20])
将数据写入 '
/myDataset3'
。您可以将第二个维度的任何大小的数据写入 '
/myDataset3'
,因为其第二个维度是无限的。
mydata = rand(200,500); h5write('myfile.h5','/myDataset3',mydata,[1 1],[200 500])
显示 HDF5 文件的全部内容。
h5disp('myfile.h5')
HDF5 myfile.h5 Group '/' Dataset 'myDataset3' Size: 200x500 MaxSize: 200xInf Datatype: H5T_IEEE_F64LE (double) ChunkSize: 20x20 Filters: none FillValue: 0.000000
输入参数
filename
— 文件名
字符向量 | 字符串标量
文件名,指定为包含 HDF5 文件名称的字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||
---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 例如: | ||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 例如: 例如: | ||||||
远程位置 | 要写入远程位置,
根据您的远程位置,
有关详细信息,请参阅处理远程数据。 例如: |
如果
filename
尚不存在,h5create
会创建它。如果您指定现有 HDF5 文件名和新数据集名称,则
h5create
会将新数据集添加到现有 HDF5 文件中。
ds
— 数据集名称
字符向量 | 字符串标量
数据集名称,指定为包含要创建的数据集的完整路径名称的字符向量或字符串标量。如果您在数据集名称中指定中间组,并且它们以前不存在,则 h5create
会创建它们。
sz
— 数据集大小
行向量
数据集大小,指定为行向量。要指定无限维度,请将 sz
的对应元素指定为 Inf
。在这种情况下,您还必须指定 ChunkSize
。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: h5create("myFile.h5","/dataset1",[1000 2000],ChunkSize=[50 80],CustomFilterID=307,CustomFilterParameters=6)
使用 50×80 个块、注册的 bzip2 滤波器(标识符 307
)以及压缩数据块大小 6
,从 HDF5 文件 myFile.h5
创建数据集 dataset1
。
Datatype
— 数据类型
'double'
(默认) | 'single'
| 'uint64'
| 'uint32'
| 'uint16'
| …
数据集的数据类型,指定为以下任一 MATLAB® 数据类型。
'double'
'single'
'uint64'
'int64'
'uint32'
'int32'
'uint16'
'int16'
'uint8'
'int8'
'string'
ChunkSize
— 块大小
行向量
块大小,指定为包含块维度的行向量。ChunkSize
的长度必须等于 sz
的长度,并且 ChunkSize
的每个条目必须小于或等于 sz
的对应条目。如果 sz
的任一元素是 Inf
,则必须指定 ChunkSize
。
Deflate
— gzip
压缩级别
0 (默认) | 数值
gzip
压缩级别,指定为 0 到 9 之间的数值,其中 0 是最低压缩级别,9 是最高压缩级别。
FillValue
— 缺失数据的填充值
0
(默认) | 数值
数值数据集中缺失数据的填充值,指定为数值。
Fletcher32
— 32 位弗莱彻校验和过滤器
false
或 0
(默认) | true
或 1
32 位弗莱彻校验和过滤器,指定为数值或逻辑值 1
(true
) 或 0
(false
)。弗莱彻校验和过滤器旨在验证文件中传输的数据是否无误。
Shuffle
— Shuffle 过滤器
false
或 0
(默认) | true
或 1
Shuffle 过滤器,指定为数值或逻辑值 1
(true
) 或 0
(false
)。Shuffle 过滤器是一种算法,旨在通过重新排列存储在内存中的数据的字节顺序来提高压缩比。
TextEncoding
— 文本编码
'UTF-8'
(默认) | 'system'
文本编码,指定为以下值之一:
'UTF-8'
- 使用 UTF 8 编码表示字符。'system'
- 使用系统编码将字符表示为字节(不推荐)。
CustomFilterID
— 过滤器标识符
[]
(默认) | 正整数
由 The HDF Group 分配的已注册过滤器插件的过滤器标识符,指定为正整数。有关注册过滤器的列表,请参阅 The HDF Group 网站上的过滤器页。
此参量的默认值表示数据集不使用动态加载的过滤器进行压缩。
数据类型: double
CustomFilterParameters
— 过滤器参数
[]
(默认) | 数值标量 | 数值行向量
第三方过滤器的过滤器参数,指定为数值标量或行向量。如果指定 CustomFilterID
而没有指定此参量,则 h5create
函数会将空向量传递给 HDF5 库,并且过滤器使用默认参数。
此名称-值参量对应于 HDF5 库中 H5Pset_filter
函数的 cd_values
参量。
数据类型: double
局限性
h5create
不支持在 HDFS™ 远程位置创建文件。
详细信息
HDF5 中的块存储
块存储指一种通过将数据集分成称为块的较小数据片段来将数据集存储在内存中的方法。对数据集进行分块可以提高对数据集子集进行操作时的性能,因为可以在 HDF5 文件中单独对这些块进行读写。
版本历史记录
在 R2011a 中推出R2022a: 使用动态加载的过滤器创建数据集
您可以使用 CustomFilterID
和 CustomFilterParameters
名称-值参量来启用使用动态加载的过滤器的压缩。
R2020b: 在远程位置创建 HDF5 文件
您可以在远程位置(例如 Amazon S3、Windows Azure Blob 存储和 HDFS)创建 HDF5 文件。
R2020b: 使用 Unicode 名称创建 HDF5 文件
您可以创建其名称以 Unicode 字符编码的 HDF5 文件。
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)