主要内容

数据类型(H5T)

数据集中元素的数据类型

描述

使用MATLAB®HDF5数据类型接口,H5T,以创建和处理数据类型,并访问有关数据类型的信息。

HDF5数据类型描述单个数据元素的存储格式,例如数字和字符数据的数据类型。除了数字和字符,HDF5数据类型还可以描述类型的更多抽象类,包括枚举、字符串和引用。用户还可以在数据类型类中定义新的数据类型。

一般数据类型操作

H5T.close

关闭数据类型

H5T.close(类型id)释放指定的数据类型类型id

H5T.commit

提交瞬态数据类型

H5T.commit (locID、名称、类型id)将瞬态数据类型提交给文件,创建一个新的命名数据类型。该语法对应于H5Tcommithdf5c库1.6版的接口。

H5T.commit (locID、名称、类型id, lcplID tcplID, taplID)将瞬态数据类型提交到文件,创建新的命名数据类型,并使用链接创建、数据类型创建和数据类型访问属性列表。该语法对应于H5Tcommithdf5c库1.8版本的接口。

细节

H5T.committed

确定是否提交了数据类型

output = H5T.committed(typeID)属性指定的数据类型,则返回正值类型id已经承诺了,而且0如果没有的话。

H5T.copy

复制数据类型

newtypeID = H5T.copy(typeID)复制现有数据类型标识符,即指定的数据集标识符类型id,或预定义的数据类型,例如“H5T_NATIVE_DOUBLE”

H5T.create

创建新的数据类型

newtype = H5T.create(classID,typesize)属性所指定的类的新数据类型classID,指定的字节数typesize

H5T.detect_class

确定数据类型是否包含特定类的数据类型

output = H5T.detect_class(typeID,classID)属性指定的数据类型,则返回正值类型id包含数据类型类的任何数据类型classID,0如果没有。

H5T.equal

确定数据类型的相等性

output = H5T.equal(type1ID,type2ID)如果数据类型标识符为,type1ID而且type2ID,引用相同的数据类型,和0如果他们不这样做。

指定type1ID而且type2ID作为包含HDF5数据类型的字符串标量或字符向量。

H5T.get_class

数据类型类标识符

classID = H5T.get_class(typeID)属性指定的数据类型的数据类型类标识符类型id

细节

H5T.get_create_plist

数据类型创建属性列表的副本

plistID = H5T.get_create_plist(typeID)属性所指定的数据类型关联的数据类型创建属性列表的属性列表标识符类型id

H5T.get_native_type

指定数据类型的本机数据类型

nativetypeID = H5T.get_native_type(typeID,方向)中指定的数据集数据类型的等效本机数据类型类型id

细节

H5T.get_size

数据类型大小(以字节为单位)

typeSize = H5T.get_size(typeID)返回指定的数据类型的大小类型id在字节。

H5T.get_super

基本数据类型

superTypeID = H5T.get_super(typeID)属性所指定的数据类型的基本数据类型类型id是派生的。

H5T.lock

锁数据类型

H5T.lock(类型id)锁定指定的数据类型类型id使其只读且不可破坏。

H5T.open

开放命名数据类型

typeID = H5T.open(locID,typename)打开一个命名数据类型typename指定的文件或组中locID并返回一个数据类型标识符。

这个函数对应于H5Topen1HDF5库C API中的函数。

数组数据类型

H5T.array_create

创建数组数据类型对象

arraytypeID = H5T.array_create(baseID,rank,dims,perms)创建一个rank的新数组数据类型对象排名还有维度会变暗.该语法对应于H5Tarray_createhdf5c库1.6版的接口。的烫发Input参数此时不使用,可以省略。

arraytypeID = H5T.array_create(baseID,dims)创建一个新的数组数据类型对象。该语法对应于H5Tarray_createhdf5c库1.8版本的接口。

细节

H5T.get_array_dims

数组尺寸的大小

dims = H5T.get_array_dims(typeID)所指定的数组数据类型的维的大小和维的排列类型id.该语法对应于H5Tget_array_dimshdf5c库1.8版本的接口。

[ndims,dimsizes,perm] = H5T.get_array_dims(typeID)对应hdf5c库1.6版中的接口。强烈反对。

细节

H5T.get_array_ndims

数组数据类型的秩

rank = H5T.get_array_ndims(typeID)返回指定的数组数据类型的秩类型id

原子数据类型属性

H5T.get_cset

字符串数据类型的字符集

cset = H5T.get_cset(typeID)返回指定的数据类型的字符集类型类型id

H5T.get_ebias

浮点类型的指数偏差

output = H5T.get_ebias(typeID)返回指定的浮点数据类型的指数偏置类型id

H5T.get_fields

浮点数据类型位字段信息

[spos,epos, size,mpos,msize] = H5T.get_fields(typeID)返回关于浮点数据类型的各个位字段位置的信息。

细节

H5T.get_inpad

浮点数据类型的内部填充类型

padType = H5T.get_inpad(typeID)属性指定的浮点数据类型中未使用的位的内部填充类型类型id

细节

H5T.get_norm

尾数归一化类型

normType = H5T.get_norm(typeID)返回指定的浮点数据类型的尾数规范化类型id

细节

H5T.get_offset

第一个有效位的位偏移量

offset = H5T.get_offset(typeID)返回第一个有效位的偏移量。

H5T.get_order

原子数据类型的字节顺序

byteorder = H5T.get_order(typeID)返回指定的原子数据类型的字节顺序类型id

细节

H5T.get_pad

最小位和最高位的填充类型

[lsb,msb] = H5T.get_pad(typeID)返回最低有效位填充类型的填充类型,lsb,以及最有效位填充类型,最高有效位指定的数据类型类型id

细节

H5T.get_precision

原子数据类型的精度

precision = H5T.get_precision(typeID)返回指定的原子数据类型的精度类型id

H5T.get_sign

整数数据类型的符号类型

signtype = H5T.get_sign(typeID)返回指定的整数类型的符号类型类型id

细节

H5T.get_strpad

字符串数据类型的存储机制

padtype = H5T.get_strpad(typeID)返回字符串数据类型的存储机制(填充类型)。

细节

H5T.set_cset

为字符串数据类型设置字符数据集

H5T.set_cset (typeID cset)设置用于创建字符串的字符编码。指定cset作为“H5T_CSET_ASCII”“H5T_CSET_UTF8”或者它们等价的数值。

H5T.set_ebias

设置浮点数据类型的指数偏差

H5T.set_ebias (typeID ebias)设置指数偏置ebias指定的浮点数据类型的类型id

H5T.set_fields

设置浮点位字段的大小和位置

H5T.set_fields(类型id、检测、叙事诗、esize, mpo、msize)设置各种浮点位字段的位置和大小。

细节

H5T.set_inpad

指定如何填充未使用的内部位

H5T.set_inpad (typeID padType)属性指定的数据类型的浮点类型的未使用的内部位如何填充类型id

细节

H5T.set_norm

设置浮点数据类型的尾数规范化

H5T.set_norm(类型id、规范)属性指定的浮点数据类型的尾数规范化类型id

细节

H5T.set_offset

设置第一个有效位的位偏移量

H5T.set_offset(类型id,抵消)设置第一个有效位的位偏移量。类型id数据类型的标识符。抵消指定出现的填充位数。

H5T.set_order

设置原子数据类型的字节顺序

H5T.set_order(类型id,顺序)设置指定的原子数据类型的字节顺序类型id

细节

H5T.set_pad

为最低和最高有效位设置填充类型

H5T.set_pad(类型id, lsb (msb)设置最低有效位填充类型的填充类型,lsb,和最有效位填充类型,最高有效位指定的数据类型类型id

细节

H5T.set_precision

设置原子数据类型的精度

H5T.set_precision(类型id, prec)设置精度的比特数,前的指定的原子数据类型的类型id

H5T.set_sign

设置整数数据类型的符号属性

H5T.set_sign(类型id,标志)为指定的整数类型设置符号属性类型id.指定标志作为“H5T_SGN_NONE”“H5T_SGN_2”

H5T.set_size

以字节为单位设置数据类型的大小

H5T.set_size (typeID typeSize)属性指定的数据类型的总大小(以字节为单位)类型id.如果需要一个可变长度的字符串,那么typesize可以指定为“H5T_VARIABLE”

H5T.set_strpad

设置字符串数据类型的存储机制

H5T.set_strpad(类型id、存储)为指定的字符串数据类型定义存储机制类型id

细节

复合数据类型

H5T.get_member_class

复合数据类型成员的数据类型类

memclass = H5T.get_member_class(typeID, memberno)属性指定的复合数据类型成员的数据类型类membno.的类型id参数是复合对象的数据类型标识符。

H5T.get_member_index

复合或枚举类型成员的索引

idx = H5T.get_member_index(typeID,name)返回属于复合数据类型或枚举数据类型元素的字段的索引的名字而且类型id

H5T.get_member_name

复合或枚举类型成员的名称

name = H5T.get_member_name(typeID, memberno)属性指定的复合数据类型或枚举数据类型的元素的字段的名称类型id.指定membno作为字段的从零开始的索引,或者作为元素的名称。

H5T.get_member_offset

复合数据类型字段的偏移量

get_member_offset(typeID, memberno)返回指定字段的字节偏移量membno指定的复合数据类型中类型id.的值0是有效的偏移量。

H5T.get_member_type

指定成员的数据类型

typeID = H5T.get_member_type(typeID, memberno)返回指定的成员的数据类型membno指定的数据类型类型id

H5T.get_nmembers

复合或枚举数据类型中的元素个数

5 .get_nmembers(typeID)返回复合数据类型中的字段数或属于枚举数据类型的成员数,由类型id

H5T.insert

向复合数据类型添加成员

H5T.insert(类型id、名称、抵消membID)属性指定的复合数据类型中添加另一个成员类型id

细节

H5T.pack

递归地从复合数据类型中删除填充

H5T.pack(类型id)类型指定的复合数据类型内递归地删除填充类型id为了更有效地(在空间方面)存储数据。

枚举数据类型

H5T.enum_create

创建新的枚举数据类型

typeID = H5T.enum_create(parentID)创建基于基本数据类型的新枚举数据类型parentID类型id新枚举数据类型的数据类型标识符。

H5T.enum_insert

插入枚举数据类型成员

H5T.enum_insert(类型id、名称、值)属性指定的枚举数据类型中插入新的枚举数据类型成员类型id.的的名字参数是一个字符串标量或字符向量,用于指定枚举的新成员的名称,并且价值成员的值。

H5T.enum_nameof

枚举数据类型成员的名称

name = H5T.enum_nameof(typeID, memberno)属性指定的枚举数据类型的成员所对应的符号名称类型id

H5T.enum_valueof

枚举数据类型成员的值

value = H5T.enum_valueof(typeID,membname)属性指定的枚举数据类型的指定成员的名称对应的值类型id

H5T.get_member_value

枚举数据类型成员的值

value = H5T.get_member_value(typeID, memberno)属性所指定的成员的值membno属性指定的枚举数据类型类型id

不透明数据类型属性

H5T.get_tag

与不透明数据类型关联的标记

tag = H5T.get_tag(typeID)返回与指定的不透明数据类型关联的标记类型id

H5T.set_tag

用描述标记不透明数据类型

H5T.set_tag(类型id、标签)标记指定的不透明数据类型类型id使用描述性文本标签.指定标签作为字符串标量或字符向量。

变长数据类型

H5T.is_variable_str

确定数据类型是否为变长字符串

output = H5T.is_variable_str(typeID)属性指定的数据类型,则返回正值类型id是可变长度的字符串,而0如果不是的话。

H5T.vlen_create

创建新的变长数据类型

ventype = H5T.vlen_create(baseID)创建一个新的变长数据类型。baseID指定要创建的数据类型的基类型。

细节

元数据缓存调优属性

H5T.flush

将所有数据缓冲区刷新到磁盘

H5T.flush(类型id)导致与提交的数据类型关联的所有缓冲区都被刷新到磁盘,而不从缓存中删除数据。

H5T.refresh

清除并重新加载所有数据缓冲区

H5T.refresh(类型id)清除与提交的数据类型相关的所有缓冲区,并立即从磁盘重新加载更新的内容。该函数关闭提交的数据类型,从缓存中清除与之相关的所有元数据,然后重新打开具有相同标识符的数据类型。

例子

全部展开

打开一个数据集,复制其数据类型,然后查询有关该数据集的信息。

打开HDF5文件example.h5数据集“g3 /化合物”

fid = H5F.open(“example.h5”);dsID = H5D.open(fid,“g3 /化合物”);

创建数据类型的副本。

typeID = H5D.get_type(dsID);

获取复合成员的名称和索引。

memberName = H5T.get_member_name(typeID,0);idx = H5T.get_member_index(typeID,“b”);

获取复合数据类型成员的数据类型类。

memberClass = H5T.get_member_class(typeID,0);

获取复合数据类型字段的偏移量。

offset = H5T.get_member_offset(typeID,1);

获取指定成员的数据类型。

memberTypeID = H5T.get_member_type(typeID,0);

获取复合数据集中的字段数,然后关闭资源。

nmembers = H5T.get_nmembers(typeID);H5T.close (memberTypeID);H5T.close(类型id);H5D.close (dsID);H5F.close (fid);

打开具有数组数据类型的数据集,创建其数据类型的副本,然后设置副本的属性。

复制数据类型并创建一个数组数据类型对象。

baseTypeID = H5T.copy(“H5T_NATIVE_DOUBLE”);暗= [100 200];H5_dims = fliplr(dims);arrayTypeID = H5T.array_create(baseTypeID,h5_dims);typeID = H5T.copy(baseTypeID);

设置数据类型的大小(以字节为单位)并查询大小。

H5T.set_size(typeID, 16); typeSize = H5T.get_size(typeID);

设置第一个有效位的位偏移量,然后查询偏移量。

H5T.set_offset(类型id, 8);offset = H5T.get_offset(typeID);

为最低和最高有效位设置填充类型。

lsb = H5ML.get_constant_value(“H5T_PAD_ONE”);msb = H5ML.get_constant_value(“H5T_PAD_ZERO”);H5T.set_pad(类型id, lsb (msb);

检索填充。

[lsb_ret,msb_ret] = H5T.get_pad(typeID);开关(lsb_ret)情况下H5ML.get_constant_value (“H5T_PAD_ZERO”)流(“lsb衬垫类型为零\n”);情况下H5ML.get_constant_value (“H5T_PAD_ONE”);流(“lsb pad类型是ones\n”);情况下H5ML.get_constant_value (“H5T_PAD_BACKGROUND”)流("lsb pad类型为后台\n");结束开关(msb_ret)情况下H5ML.get_constant_value (“H5T_PAD_ZERO”)流("msb pad类型为零\n");情况下H5ML.get_constant_value (“H5T_PAD_ONE”);流("msb pad类型为ones\n");情况下H5ML.get_constant_value (“H5T_PAD_BACKGROUND”)流("msb pad类型为后台\n");结束

关闭资源。

H5T.close(类型id);H5T.close (baseTypeID);

创建复合数据类型,然后向其添加成员。

创建一个新的复合数据类型。

typeID = H5T.create(“H5T_COMPOUND”16);

向复合数据类型添加成员。

H5T.insert(类型id,“第一”0,“H5T_NATIVE_DOUBLE”);H5T.insert(类型id,“第二”8“H5T_NATIVE_INT”);H5T.insert(类型id,“第三”12“H5T_NATIVE_UINT”);

锁定数据类型。如果试图在锁定数据类型后向该数据类型添加新成员,则操作将失败。

H5T.lock(类型id) H5T.insert(类型id,“四”12“H5T_NATIVE_UINT”);这应该会失败。

关闭资源。

H5T.close(类型id);

确定两个数据类型是否相等。

打开数据集“g3 / integer2D”并获得它的数据类型。

fid = H5F.open(“example.h5”);dsID = H5D.open(fid,“g3 / integer2D”);dtypeID = H5D.get_type(dsID);

的数据类型dtypeID等于HDF5数据类型“H5T_STD_I32LE”.然后,关闭数据类型、数据集和HDF5文件。

如果H5T.equal (dtypeID“H5T_STD_I32LE”)流("32位小端整数\n");结束H5T.close (dtypeID);H5D.close (dsID);H5F.close (fid);

版本历史

R2006a之前介绍

全部展开