hdf5write
(不推荐)将数据写入 HDF5 格式的文件中
不推荐使用 hdf5write
。请改用 h5write
。
语法
说明
输入参数
filename
— 文件名
字符向量 | 字符串标量
文件名,指定为包含 HDF5 文件名称的字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 |
---|---|
当前文件夹 | 指定 例如: |
其他文件夹 | 如果该文件不在当前文件夹或 MATLAB® 路径下的文件夹中,则在 例如: 示例: |
loc
— 文件中的位置
字符向量 | 字符串标量
文件中的位置,指定为字符向量或字符串标量,包含向其写入数据的数据集或组的完整路径名称。
details
— 输入结构体
结构体数组
hdf5write
用于将数据写入 HDF5 文件的输入结构体,指定为一个或多个结构体数组。details
结构体可以包含不同字段,具体取决于您是将数据集还是属性写入文件。
对于数据集,details
可以有以下字段:
Location
- 字符向量或字符串标量,其中包含要写入数据的组或数据集的完整路径名称。Name
- 字符向量或字符串标量,其中包含要分配给输入数据集的名称。
对于属性,details
可以有以下字段:
AttachedTo
- 结构体数组,其中包含输入属性修改的对象的位置。AttachType
- 输入属性修改的对象类型,指定为'group'
或'dataset'
。Name
- 字符向量或字符串标量,其中包含要分配给输入属性的名称。
ds
— 输入数据集
数值数组 | 字符向量 | 字符串标量 | 字符向量元胞数组 | 字符串数组 | 数值数据元胞数组 | 结构体数组 | HDF5 对象
要写入 HDF5 文件的输入数据,指定为以下一项或多项:
数值数组
字符向量
字符串标量
字符向量元胞数组
字符串数组
数值数据元胞数组
结构体数组
HDF5 对象。
attr
— 属性名称
字符向量 | 字符串标量
属性名称,指定为包含属于某组或数据集的属性名称的字符向量或字符串标量。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: 'WriteMode','append'
将数据追加到现有 HDF5 文件中。
V71Dimensions
— 与 MATLAB 7.1 和更早版本的兼容性
false
(默认) | true
与 MATLAB 7.1 及更早版本的兼容性,指定为包含 'V71Dimensions'
以及 true
或 false
的逗号分隔对组。如果指定 true
,则 hdf5write
会置换数据集的前两个维度,使写入文件的数据集的维度顺序与以前版本的 hdf5write
(MATLAB 7.1 [R14SP3] 和更早版本)一致。
'V71Dimensions'
的默认值为 false
,它不会更改输出数据维度的顺序。
HDF5 以行优先排序描述数据集维度,MATLAB 以列优先顺序存储数据。但是,置换这些维度可能无法正确反映数据的意图,并且可能会使元数据失效。写入文件的数据正确反映数据集的数据顺序;输出数据集中的每个维度都与对应 MATLAB 变量中的相同维度匹配。
示例: 'V71Dimensions',true
WriteMode
— 写入模式
字符向量 | 字符串标量
写入模式,指定为以逗号分隔的对组,该对组由 'WriteMode'
和一个字符向量或字符串标量组成。将 'WriteMode'
指定为以下值之一:
'overwrite'
(默认值)- 覆盖文件。'append'
- 将数据追加到现有 HDF5 文件。
示例: 'WriteMode','append'
示例
将数据写入 HDF5 文件
将数据写入名为 myfile.h5
、myfile2.h5
和 myfile3.h5
的三个不同 HDF5 文件。
将一个由 uint8
值组成的 5×5 数据集写入文件 myfile.h5
的根组。
hdf5write('myfile.h5','/dataset1',uint8(magic(5)))
将一个由文本条目组成的 2×2 数据集写入文件 myfile2.h5
中的一个子组。
dataset = {'north','south';'east','west'}; hdf5write('myfile2.h5','/group1/dataset1.1',dataset);
将数据集和属性写入 myfile2.h5
中的一个现有组。
dset = single(rand(10,10)); dset_details.Location = '/group1/dataset1.2'; dset_details.Name = 'Random'; attr = 'Some random data'; attr_details.Name = 'Description'; attr_details.AttachedTo = '/group1/dataset1.2/Random'; attr_details.AttachType = 'dataset'; hdf5write('myfile2.h5',dset_details,dset,... attr_details,attr,'WriteMode','append');
使用对象将数据集写入文件 myfile3.h5
。
dset = hdf5.h5array(magic(5)); hdf5write('myfile3.h5','/g1/objects',dset);
详细信息
数据类型映射
下表列出了 hdf5write
如何将数据类型从工作区映射到 HDF5 文件。如果工作区中要写入到文件的数据是 MATLAB 数据类型,hdf5write
使用以下规则将 MATLAB 数据映射到 HDF5 数据对象。
MATLAB 数据类型 | HDF5 数据集或属性 |
---|---|
数值 | 对应的 HDF5 本机数据类型。例如,如果工作区的数据类型是 |
字符向量或字符串标量 | 单个以空值结尾的字符串。 |
字符向量元胞数组或字符串数组 | 多个以空值结尾的字符串,每个字符串的长度相同。长度由元胞数组中的最长字符串的长度决定。HDF5 数据空间的大小与元胞数组的大小相同。 |
数值数据元胞数组 | 数值数组,维度与元胞数组相同。该数组的各个元素的大小和类型都相同。数据类型由元胞数组中的第一个元素决定。 |
结构体数组 | HDF5 复合类型。结构体中的单个字段对单个数据类型使用相同的数据转换规则。例如,字符串元胞数组变成多个以空值结尾的字符串。 |
HDF5 对象 | 如果要写入文件中的数据包含 HDF5 对象, |
版本历史记录
在 R2006a 之前推出
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)