Main Content

h5writeatt

将属性写入 HDF5 文件

说明

h5writeatt(filename,loc,attr,val) 将名为 attr 且值为 val 的属性写入 HDF5 文件中的指定位置。

示例

h5writeatt(filename,loc,attr,val,'TextEncoding',encoding) 使用指定的编码将 attr 写入 HDF5 文件中的指定位置。'UTF-8''TextEncoding' 的默认设置,而 'system' 使用系统编码来表示字符。通常没有必要指定 'system' 作为编码。

示例

全部折叠

examplefile.h5 的根组写入一个属性,其值为当前时间。

date = datestr(now);
h5writeatt('examplefile.h5','/','creation_date', date);

从 HDF5 文件的根组中读取该属性。

val1 = h5readatt('examplefile.h5','/','creation_date')
val1 = 
'20-Jul-2024 14:43:37'

创建一个双精度数组,并将其写入数据集 /g4/world

attData = [0 1 2 3];
h5writeatt('examplefile.h5','/g4/world','val2',attData);

显示数据集元数据。列出的属性 val2 是属于数据集的属性之一。

h5disp('examplefile.h5','/g4/world');
HDF5 examplefile.h5 
Dataset 'world' 
    Size:  36x19
    MaxSize:  36x19
    Datatype:   H5T_IEEE_F64LE (double)
    ChunkSize:  []
    Filters:  none
    FillValue:  0.000000
    Attributes:
        'val2':  0.000000 1.000000 2.000000 3.000000 

输入参数

全部折叠

现有 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

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

示例:"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"

文件中的位置,指定为字符向量或字符串标量,其中包含要与该属性关联的现有组或数据集的完整路径名称。

属性的名称,指定为包含属于某组或数据集的属性名称的字符向量或字符串标量。如果该属性不存在,h5writeatt 使用指定的名称创建该属性。

如果指定的属性已存在但不具有与 val 一致的数据类型或数据空间,则 h5writeatt 将删除该属性并重新创建它。字符串属性是使用一个标量数据空间创建的,标量数据空间是单一的零维数据点。

要写入的属性的值,指定为字符向量、字符串标量或数值。

文本编码,指定为以逗号分隔的对组,其中包含 'TextEncoding' 和下列值之一:

  • 'UTF-8' - 使用 UTF-8 编码表示字符。

  • 'system' - 使用系统编码将字符表示为字节(不推荐)。

局限性

  • h5writeatt 不支持在 HDFS™ 远程位置写入文件。

版本历史记录

在 R2011a 中推出

全部展开