matlab 数据写入空矩阵,(不推荐)将数据写入 HDF5 格式的文件中

hdf5write

(不推荐)将数据写入 HDF5 格式的文件中

兼容性

注意

不推荐使用 hdf5write。请改用 h5write。

语法

hdf5write(filename,location,dataset)

hdf5write(filename,details,dataset)

hdf5write(filename,details,attribute)

hdf5write(filename, details1, dataset1,

details2, dataset2,...)

hdf5write(filename,...,'WriteMode',mode,...)

hdf5write(..., 'V71Dimensions', BOOL)

说明

hdf5write(filename,location,dataset) 将数据 dataset 写入 HDF5 文件 filename。如果 filename 不存在,hdf5write 将进行创建。如果 filename 存在,hdf5write 在默认情况下将改写现有文件,但您也可以使用可选语法将数据附加到现有文件。

location 定义将数据集写入到文件中的位置。HDF5 文件按照与 UNIX® 目录结构类似的层次结构进行组织。location 指定为与 UNIX 路径类似的字符向量或字符串标量。

hdf5write 根据下面说明的规则将 dataset 中的数据映射到 HDF5 数据类型。

hdf5write(filename,details,dataset) 使用 details 结构体中的值将 dataset 写入到 filename。对于数据集,details 结构体可以包含以下字段。

字段名称说明数据类型Location数据集在文件中的位置字符向量或字符串标量

Name要附加到数据集的名称字符向量或字符串标量

hdf5write(filename,details,attribute) 使用 details 结构体中的值将元数据 attribute 写入到 filename。对于属性,details 结构体可以包含以下字段。

字段名称说明数据类型AttachedTo此属性修改的对象的位置结构体数组

AttachType标识此属性修改的对象的种类;可能值包括 'group' 和 'dataset'字符向量或字符串标量

Name要附加到数据集的名称字符向量或字符串标量

hdf5write(filename, details1, dataset1,

details2, dataset2,...) 通过一次运算将多个数据集及关联属性写入到 filename。每个数据集和属性都必须具有关联的 details 结构体。

hdf5write(filename,...,'WriteMode',mode,...) 指定 hdf5write 是改写现有文件(默认设置)还是将数据集和属性附加到文件。mode 的可能值包括 'overwrite' 和 'append'。

hdf5write(..., 'V71Dimensions', BOOL) 指定是否更改写入到文件中的大多数数据集。如果 BOOL 为 true,hdf5write 置换数据集的前两个维度,与以前版本(MATLAB® 7.1 [R14SP3] 及更低版本)中的操作一样。这种行为旨在将 HDF5 和 MATLAB 如何表示数组维度的差异考虑在内。HDF5 按照行优先的顺序描述数据集维度,MATLAB 按照列优先的顺序存储数据。但是,置换这些维度可能无法正确反映数据的意图,并且可能会使元数据失效。如果 BOOL 为 false(默认值),写入到文件中的数据可正确反映数据集的数据排序,即文件数据集内的每个维度匹配相应 MATLAB 变量中的相同维度。

数据类型映射

下表列出了 hdf5write 如何将数据类型从工作区映射到 HDF5 文件。如果工作区中要写入到文件的数据是 MATLAB 数据类型,hdf5write 使用以下规则将 MATLAB 数据转换为 HDF5 数据对象。

MATLAB 数据类型HDF5 数据集或属性数值对应的 HDF5 本机数据类型。例如,如果工作区的数据类型是 uint8,hdf5write 函数将数据以 8 位整数形式写入到文件中。HDF5 数据空间的大小与 MATLAB 数组的大小相同。

字符向量或字符串标量单个以空值结尾的字符串

字符向量元胞数组或字符串数组多个以空值结尾的字符串,每个字符串的长度相同。长度由元胞数组中的最长字符串的长度决定。HDF5 数据空间的大小与元胞数组的大小相同。

数值数据元胞数组数值数组,维度与元胞数组相同。该数组的各个元素的大小和类型都相同。数据类型由元胞数组中的第一个元素决定。

结构体数组HDF5 复合类型。结构体中的单个字段对单个数据类型使用相同的数据转换规则。例如,字符串元胞数组变成多个以空值结尾的字符串。

HDF5 对象如果要写入文件中的数据包含 HDF5 对象,hdf5write 会使用相同的数据类型将数据写入文件。对于所有 HDF5 对象(HDF5.h5enum 对象除外),数据空间的维度与传递到该函数的 HDF5 对象数组的维度相同。对于 HDF5.h5enum 对象,HDF5 文件中数据集的大小和维度与对象的数据字段的大小和维度相同。

示例

将由 uint8 值组成的 5×5 数据集写入到根组。

hdf5write('myfile.h5', '/dataset1', uint8(magic(5)))

将文本条目的 2×2 数据集写入到子组中。

dataset = {'north', 'south'; 'east', 'west'};

hdf5write('myfile2.h5', '/group1/dataset1.1', dataset);

将数据集和属性写入到现有组。

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');

使用对象写入数据集。

dset = hdf5.h5array(magic(5));

hdf5write('myfile3.h5', '/g1/objects', dset);

在 R2006a 之前推出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值