h5write
将数据写入 HDF5 数据集
语法
说明
示例
创建一个名为 DS1 的 10×20 数据集。
h5create("myfile.h5","/DS1",[10 20])
将一个 10×20 随机数数组写入该数据集。由于 DS1 的维度是固定的,因此要写入其中的数据量必须与其大小相匹配。
mydata = rand(10,20); h5write("myfile.h5","/DS1",mydata)
显示文件内容。
h5disp("myfile.h5")HDF5 myfile.h5
Group '/'
Dataset 'DS1'
Size: 10x20
MaxSize: 10x20
Datatype: H5T_IEEE_F64LE (double)
ChunkSize: []
Filters: none
FillValue: 0.000000
创建一个名为 DS2 的 10×20 数据集。
h5create("myfile.h5","/DS2",[10 20])
将数据的一个 5×7 子集写入该数据集的最后一个 5×7 块。将 count 指定为 [5 7] 以匹配您所写数据的大小。将 start 指定为 [6 14],因为从该起点移动 count 个元胞将在数据集的最后一个元素中结束。
mydata = rand(5,7); h5write("myfile.h5","/DS2",mydata,[6 14],[5 7])
将数据写入一个具有无限维度的数据集。
创建一个在第二个维度是无限的数据集。必须指定 ChunkSize 才能将数据集的维度设置为 Inf。
h5create("myfile.h5","/g2/DS2",[20 Inf],"Chunksize",[5 5]);
将一个 3×3 数据分块写入 "/g2/DS2"。从起点 [3 2] 开始,一直写到分块的末尾。您可以向数据集的第二个维度写入任何大小的数据,因为该维度是无限的。
data = rand(3); start = [3 2]; count = [3 3]; h5write("myfile.h5","/g2/DS2",data,start,count);
从数据集中读取所有数据。
h5read("myfile.h5","/g2/DS2")
ans = 20×4
0 0 0 0
0 0 0 0
0 0.8147 0.9134 0.2785
0 0.9058 0.6324 0.5469
0 0.1270 0.0975 0.9575
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
⋮
输入参数
现有 HDF5 文件的文件名,指定为字符串标量或字符向量。
根据文件的位置,filename 可以采用下列形式之一。
位置 | 形式 | ||||||
|---|---|---|---|---|---|---|---|
| 当前文件夹或 MATLAB® 路径上的文件夹 | 如果文件位于当前文件夹中或 MATLAB 路径上的文件夹中,则在 示例: | ||||||
其他文件夹 | 如果该文件既不在当前文件夹中,也不在 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"。
数据集名称,指定为字符串标量或字符向量,其中包含 HDF5 文件中一个现有数据集的名称。
起始位置,指定为由正整数组成的数值向量。对于 n 维数据集,start 是长度为 n 的向量,其中包含从 1 开始的索引。start 的元素按顺序对应于数据集维度。如果 ds 的任一维度是无限维度,则必须指定 start。
如果未指定 start,则 h5write 函数将从每个维度的第一个索引开始写入数据集。
要写入的元素数,指定为由正整数组成的数值向量。对于 n 维数据集,count 是长度为 n 的向量,用于指定要沿每个维度写入数据集的元素数。count 的元素按顺序对应于数据集维度。如果 ds 的任一维度是无限维度,则必须指定 count。
沿数据集的每个维度的元素之间的间距,指定为由整数组成的数值向量。对于 n 维数据集,stride 是长度为 n 的向量。stride 向量的元素按顺序对应于数据集维度。值为 1 表示写入时不会跳过对应维度中的元素,值为 2 则每隔一个元素写入一次,依此类推。
如果没有指定 stride,则 h5write 函数写入数据时不会沿每个维度跳过元素。
局限性
h5write不支持在 HDFS™ 远程位置写入文件。
版本历史记录
在 R2011a 中推出您可以将数据写入远程位置(例如 Amazon S3、Windows Azure Blob 存储和 HDFS)的 HDF5 文件。
您可以将数据写入其名称以 Unicode 字符编码的 HDF5 文件。
UTF-8 现在是 h5write 的默认字符编码,因此所有 Unicode 代码点都能在 HDF5 文件中表示。以前,默认编码是 ASCII。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)