Main Content

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

h5write

写入 HDF5 数据集

说明

示例

h5write(filename,ds,data) 将数据写入指定 HDF5 文件中的整个数据集 ds。如果数据集大小固定,要写入的数据量必须与数据集的大小匹配。

示例

h5write(filename,ds,data,start,count) 将数据的子集写入数据集,从起始位置 start 开始,继续写入 count 个元素。在多维数据集中,count 指定每个方向的距离。如有必要,h5write 可沿任意无限维度扩展可扩展数据集。

示例

h5write(filename,ds,data,start,count,stride) 指定在数据集的每个维度上元素之间的间距 stride

示例

全部折叠

创建一个名为 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
      ⋮

输入参数

全部折叠

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

根据您写入的位置,filename 可以采用以下形式之一。

位置

形式

当前文件夹

要写入当前文件夹,请在 filename 中指定文件名。

示例:"myFile.h5"

其他文件夹

要写入不同于当前文件夹的文件夹,请在 filename 中指定完整或相对路径名称。

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

示例:"myFolder\myFile.h5"

远程位置

要写入远程位置,filename 必须包含指定为统一资源定位器 (URL) 形式的文件的完整路径:

scheme_name://path_to_file/my_file.ext

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

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

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

示例:"s3://bucketname/path_to_file/myFile.h5"

数据集名称,指定为字符串标量或字符向量,其中包含 HDF5 文件中一个现有数据集的名称。

要写入 HDF5 文件的数据。如果在对 h5create 的对应调用中指定了数值数据类型,则 data 是包含浮点或整数数据的数值矩阵。如果不指定 startcount,则数据必须为非稀疏的,并且必须与 HDF5 数据集大小相同。如果数据集中的一个维度是无限的,则要写入的数据的该维度可以是任何大小。

如果在对 h5create 的对应调用中将 "string" 指定为数据类型,则 data 是 MATLAB 字符串数组。字符串数组维度必须与在对 h5create 的调用中指定的维度相匹配。

起始位置,指定为由正整数组成的数值向量。对于 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 中推出

全部展开