Datatype (H5T)

Тип данных элементов в наборе данных

Описание

Используйте MATLAB® Интерфейс типа данных HDF5, H5T, создайте и обработайте типы данных и информацию о доступе о них.

Тип данных HDF5 описывает формат устройства хранения данных для одного элемента данных, такого как тип данных числовых и символьных данных. В дополнение к числам и символам, тип данных HDF5 может описать более абстрактные классы типов, включая времена даты, перечисления, строки, строки битов и ссылки (указатели на объекты в файле HDF5). Пользователи могут также задать новые типы данных в классах типа данных.

Общие операции типа данных

H5T.close

Закройте тип данных

H5T.close(typeID) выпускает тип данных, заданный typeID.

H5T.commit

Фиксируйте переходный тип данных

H5T.commit(locID,name,typeID) передает переходный тип данных файлу, создавая новый именованный тип данных. Этот синтаксис соответствует H5Tcommit интерфейс в версии 1.6 библиотеки HDF5 C.

H5T.commit(locID,name,typeID,lcplID,tcplID,taplID) передает переходный тип данных файлу, создавая новый именованный тип данных, и использует создание ссылки, создание типа данных и списки свойств доступа к типу данных. Этот синтаксис соответствует H5Tcommit интерфейс в версии 1.8 библиотеки HDF5 C.

 Детали

H5T.committed

Определите, фиксируется ли тип данных

tf = H5T.committed(typeID) возвращает положительное значение, чтобы указать, что тип данных фиксировался, и нуль, чтобы указать, что это не имеет. Отрицательная величина указывает на отказ.

H5T.copy

Скопируйте тип данных

newtypeID = H5T.copy(typeID) копирует существующий идентификатор типа данных, идентификатор набора данных, заданный typeID, или предопределенный тип данных, такой как 'H5T_NATIVE_DOUBLE'.

H5T.create

Создайте новый тип данных

newtype = H5T.create(classID,typesize) создает новый тип данных, который принадлежит классу, заданному classID, с количеством байтов, заданных typesize.

H5T.detect_class

Определите, содержит ли тип данных типы данных определенного класса

tf = H5T.detect_class(typeID,classID) возвращает положительное значение если тип данных, заданный typeID содержит любые типы данных класса типа данных classID, и 0 если это не делает. Отрицательная величина указывает на ошибку.

H5T.equal

Определите равенство типов данных

tf = H5T.equal(type1ID,type2ID) возвращает положительное значение если идентификаторы типа данных, type1ID и type2ID, обратитесь к тому же типу данных и 0 если они не. Отрицательная величина указывает на ошибку.

Задайте type1ID и type2ID как векторы символов или строковые скаляры, содержащие тип данных HDF5.

H5T.get_class

Возвратите идентификатор класса типа данных

classID = H5T.get_class(typeID) возвращает идентификатор класса типа данных типа данных, заданного typeID.

 Детали

H5T.get_create_plist

Копия списка свойств создания типа данных

plistID = H5T.get_create_plist(typeID) возвращает идентификатор списка свойств для списка свойств создания типа данных, сопоставленного с типом данных, заданным typeID.

H5T.get_native_type

Собственный тип данных заданного типа данных

nativetypeID = H5T.get_native_type(typeID,direction) возвращает эквивалентный собственный тип данных для типа данных набора данных, заданного в typeID.

 Детали

H5T.get_size

Размер типа данных в байтах

typeSize = H5T.get_size(typeID) возвращается размер типа данных задал bytypeID в байтах.

H5T.get_super

Базовый тип данных

superTypeID = H5T.get_super(typeID) возвращает базовый тип данных из который тип данных, заданный typeID выведен.

H5T.lock

Заблокируйте тип данных

H5T.lock(typeID) блокирует тип данных, заданный typeID, создание его только для чтения и ненепрочный.

H5T.open

Открытый именованный тип данных

typeID = H5T.open(locID,typename) открывает именованный тип данных typename в файле или группе, заданной locID и возвращает идентификатор типа данных.

Эта функция соответствует H5Topen1 функция в API библиотеки HDF5 C.

Тип данных массива

H5T.array_create

Создайте объект типа данных Array

arraytypeID = H5T.array_create(baseID,dims) создает новый объект типа данных Array. Этот синтаксис соответствует H5Tarray_create интерфейс в версии 1.8 библиотеки HDF5 C.

arraytypeID = H5T.array_create(baseID,rank,dims,perms) создает новый объект типа данных Array ранга rank и с размерностями dims. Этот синтаксис соответствует H5Tarray_create интерфейс в версии 1.6 библиотеки HDF5 C. perms параметр не используется в это время и может быть не использован.

 Детали

H5T.get_array_dims

Возвратите размеры измерений массива

dims = H5T.get_array_dims(typeID) возвращает размеры размерностей и сочетания размерности типа данных Array, заданного typeID. Этот синтаксис соответствует H5Tget_array_dims интерфейс в версии 1.8 библиотеки HDF5 C.

[ndims,dimsizes,perm] = H5T.get_array_dims(type_id) соответствует интерфейсу в версии 1.6 библиотеки HDF5 C. Это строго удерживается от использования.

 Детали

H5T.get_array_ndims

Ранг типа данных Array

rank = H5T.get_array_ndims(typeID) возвращает ранг типа данных Array, заданного typeID.

Свойства элементарного типа данных

H5T.get_cset

Набор символов типа данных String

cset = H5T.get_cset(typeID) возвращает тип набора символов типа данных, заданного typeID.

H5T.get_ebias

Смещение экспоненты типа с плавающей точкой

output = H5T.get_ebias(typeID) возвращает смещение экспоненты типа данных с плавающей точкой, заданного typeID.

H5T.get_fields

Информация о битовом поле типа данных с плавающей точкой

[spos,epos,esize,mpos,msize] = H5T.get_fields(typeID) возвращает информацию о местоположениях различных битовых полей типа данных с плавающей точкой.

 Детали

H5T.get_inpad

Внутренний дополнительный тип для типов данных с плавающей точкой

padType = H5T.get_inpad(typeID) возвращает внутренний дополнительный тип для неиспользованных битов в типе данных с плавающей точкой, заданном typeID.

 Детали

H5T.get_norm

Тип нормализации мантиссы

normType = H5T.get_norm(typeID) возвращает нормализацию мантиссы типа данных с плавающей точкой, заданного typeID.

 Детали

H5T.get_offset

Битное смещение первого значимого бита

offset = H5T.get_offset(typeID) возвращает смещение первого значимого бита.

H5T.get_order

Порядок байтов атомарного типа данных

byteorder = H5T.get_order(typeID) возвращает порядок байтов атомарного типа данных, заданного typeID.

 Детали

H5T.get_pad

Дополнение типа наименьшего и старших значащих битов

[lsb,msb] = H5T.get_pad(typeID) возвращает дополнительный тип младшего значащего типа заполнения двоичного кода незначащей информацией, lsb, и старшие значащие типы заполнения двоичного кода незначащей информацией, msb, из типа данных, заданного typeID.

 Детали

H5T.get_precision

Точность атомарного типа данных

precision = H5T.get_precision(typeID) возвращает точность атомарного типа данных, заданного typeID.

H5T.get_sign

Подпишите тип для целочисленного типа данных

signtype = H5T.get_sign(typeID) возвращает тип знака для целочисленного типа, заданного typeID.

H5T.get_sign функция возвращает signType как числовые константы, соответствующие любому 'H5T_SGN_NONE' или 'H5T_SGN_2'.

H5T.get_strpad

Механизм хранения для типа данных String

padtype = H5T.get_strpad(typeID) возвращает механизм хранения (дополняющий тип) для типа данных String.

 Детали

H5T.set_cset

Установите символьный набор данных для типа данных String

H5T.set_cset(typeID,cset) устанавливает кодировку символов, используемую, чтобы создать строки. Задайте cset как 'H5T_CSET_ASCII' или его эквивалентное численное значение.

H5T.set_ebias

Установите смещение экспоненты типа данных с плавающей точкой

H5T.set_ebias(typeID,ebias) устанавливает смещение экспоненты ebias из типа данных с плавающей точкой, заданного typeID.

H5T.set_fields

Установите размеры и местоположения битовых полей с плавающей точкой

H5T.set_fields(typeID,spos,epos,esize,mpos,msize) устанавливает местоположения и размеры различных битовых полей с плавающей точкой.

 Детали

H5T.set_inpad

Задайте, как неиспользованные внутренние биты должны быть заполнены

H5T.set_inpad(typeID,padType) наборы, как неиспользованные внутренние биты типа с плавающей точкой заполнены для типа данных, заданного typeID.

 Детали

H5T.set_norm

Установите нормализацию мантиссы типа данных с плавающей точкой

H5T.set_norm(typeID,norm) устанавливает нормализацию мантиссы типа данных с плавающей точкой, заданного typeID.

 Детали

H5T.set_offset

Установите битное смещение первого значимого бита

H5T.set_offset(typeID,offset) устанавливает битное смещение первого значимого бита. typeID идентификатор типа данных. offset задает количество битов дополнения, которые появляются.

H5T.set_order

Установите порядок байтов атомарного типа данных

H5T.set_order(typeID,order) устанавливает порядок байтов атомарного типа данных, заданного typeID.

 Детали

H5T.set_pad

Установите дополнительный тип для наименьшего и старших значащих битов

H5T.set_pad(typeID,lsb,msb) устанавливает дополнительный тип младшего значащего типа заполнения двоичного кода незначащей информацией, lsb, и старший значащий тип заполнения двоичного кода незначащей информацией, msb, из типа данных, заданного typeID.

 Детали

H5T.set_precision

Установите точность атомарного типа данных

H5T.set_precision(typeID,prec) определяет номер битов точности, prec, из атомарного типа данных, заданного typeID.

H5T.set_sign

Установите свойство знака для целочисленного типа данных

H5T.set_sign(typeID,sign) устанавливает свойство знака для целочисленного типа, заданного как typeID. Задайте sign как любой 'H5T_SGN_NONE' или 'H5T_SGN_2'.

H5T.set_size

Установите размер типа данных в байтах

H5T.set_size(typeID,typeSize) устанавливает общий размер в байтах для типа данных, заданного typeID. Если строка переменной длины желаема затем typesize может быть задан как 'H5T_VARIABLE'.

H5T.set_strpad

Установите механизм хранения для типа данных String

H5T.set_strpad(typeID,storage) задает механизм хранения для типа данных String, заданного typeID.

 Детали

Составной тип данных

H5T.get_member_class

Класс типа данных для составного члена типа данных

memclass = H5T.get_member_class(typeID,memb) возвращает класс типа данных составного члена типа данных, заданного memb. ThetypeID аргумент является идентификатором типа данных составного объекта.

H5T.get_member_index

Индекс составного объекта или члена перечисляемого типа

idx = H5T.get_member_index(typeID,name) возвращает индекс поля, принадлежащего составному типу данных или элементу типа данных перечисления, заданного name и typeID.

H5T.get_member_name

Имя составного объекта или члена перечисляемого типа

name = H5T.get_member_name(typeID,memb) возвращает имя поля, принадлежащего составному типу данных или элементу типа данных перечисления, заданного typeID. Задайте memb как основанный на нуле индекс поля, или как имя элемента.

H5T.get_member_offset

Смещение поля составного типа данных

offset = H5T.get_member_offset(typeID,memb) возвращает байтовое смещение поля, заданного memb в составном типе данных, заданном typeID. Значение 0 допустимое смещение.

H5T.get_member_type

Тип данных заданного члена

typeID = H5T.get_member_type(typeID,memb) возвращает тип данных члена, заданного memb в типе данных, заданном typeID.

H5T.get_nmembers

Число элементов в составном или типе данных перечисления

membs = H5T.get_nmembers(typeID) возвращает количество полей в составном типе данных или числе членов, принадлежащем типу данных перечисления, заданному typeID.

H5T.insert

Добавьте член, чтобы соединить тип данных

H5T.insert(typeID,name,offset,membID) добавляет другой член к составному типу данных, заданному typeID.

 Детали

H5T.pack

Рекурсивно удалите дополнение из составного типа данных

H5T.pack(typeID) рекурсивно удаляет дополнение из составного типа данных, заданного typeID сделать его более эффективным (мудрый пробелом), чтобы хранить те данные.

Тип данных перечисления

H5T.enum_create

Создайте новый тип данных перечисления

typeID = H5T.enum_create(parentID) создает новый тип данных перечисления на основе базового типа данных parentID. typeID идентификатор типа данных для нового типа данных перечисления.

H5T.enum_insert

Введите член типа данных перечисления

H5T.enum_insert(typeID,name,value) вводит новый член типа данных перечисления в тип данных перечисления, заданный typeID. name аргумент является вектором символов или строковым скаляром, который задает имя нового члена перечисления и value значение члена.

H5T.enum_nameof

Имя члена типа данных перечисления

name = H5T.enum_nameof(typeID,memb) возвращает имя символа, соответствующее члену типа данных перечисления, заданного typeID.

H5T.enum_valueof

Значение члена типа данных перечисления

value = H5T.enum_valueof(typeID,membname) возвращает значение, соответствующее имени заданного члена типа данных перечисления, заданного typeID.

H5T.get_member_value

Значение члена типа данных перечисления

value = H5T.get_member_value(typeID,membnum) возвращает значение члена, заданного membnum это принадлежит типу данных перечисления, заданному typeID.

Opaque Data Type Properties

H5T.get_tag

Тег сопоставлен с непрозрачным типом данных

tag = H5T.get_tag(typeID) возвращает тег, сопоставленный с непрозрачным типом данных, заданным typeID.

H5T.set_tag

Пометьте непрозрачный тип данных с описанием

H5T.set_tag(typeID,tag) помечает непрозрачный тип данных, заданный typeID с описательным текстом tag. Задайте tag как вектор символов или строковый скаляр.

Тип данных переменной длины

H5T.is_variable_str

Определите, является ли тип данных строкой переменной длины

output = H5T.is_variable_str(typeID) возвращает положительное значение если тип данных, заданный typeID строка переменной длины и 0 если это не. Отрицательная величина указывает на ошибку.

H5T.vlen_create

Создайте новый тип данных переменной длины

vlentypeID = H5T.vlen_create(baseID) создает новый тип данных переменной длины. baseID задает базовый тип типа данных, чтобы создать.

 Детали

Свойства подстройки кэша метаданных

H5T.flush

Сбросьте все буферы данных к диску (начиная с R2021b)

H5T.flush(typeID) причины все буферы, сопоставленные с зафиксированным типом данных, который будет сброшен к диску, не удаляя данные из кэша.

H5T.refresh

Очистите и перезагрузите все буферы данных (начиная с R2021b)

H5T.refresh(typeID) причины все буферы, сопоставленные с зафиксированным типом данных, который будет очищен и сразу перезагружен с обновленным содержимым от диска. Эта функция закрывает зафиксированный тип данных, выселяет все метаданные, сопоставленные с ним из кэша, и затем вновь открыла тип данных с тем же идентификатором.

Примеры

развернуть все

Откройте набор данных, скопируйте его тип данных, затем запросите информацию об этом.

Откройте файл HDF5 example.h5 и набор данных '/g3/compound'.

fid = H5F.open('example.h5');
dset_id = H5D.open(fid,'/g3/compound');

Создайте копию типа данных.

type_id = H5D.get_type(dset_id);

Завоюйте репутацию и индекс составного члена.

member_name = H5T.get_member_name(type_id,0);
idx = H5T.get_member_index(type_id,'b');

Получите класс типа данных для составного члена типа данных.

member_class = H5T.get_member_class(type_id,0);

Получите смещение поля составного типа данных.

offset = H5T.get_member_offset(type_id,1);

Получите тип данных заданного члена.

member_type_id = H5T.get_member_type(type_id,0);

Получите количество полей в составном наборе данных, затем закройте файл.

nmembers = H5T.get_nmembers(type_id);
H5F.close(fid);

Откройте набор данных с типом данных Array, создайте копию его типа данных, затем установите свойства копии.

Скопируйте тип данных и создайте объект типа данных Array.

base_type_id = H5T.copy('H5T_NATIVE_DOUBLE');
dims = [100 200];
h5_dims = fliplr(dims);
array_type = H5T.array_create(base_type_id,h5_dims);
type_id = H5T.copy(base_type_id);

Установите размер типа данных в байтах и запросите размер.

H5T.set_size(type_id, 16);
type_size = H5T.get_size(type_id);

Установите битное смещение первого значимого бита, затем запросите смещение.

H5T.set_offset(type_id,8);
offset = H5T.get_offset(type_id);

Установите дополнительный тип для наименьшего и старших значащих битов.

lsb = H5ML.get_constant_value('H5T_PAD_ONE');
msb = H5ML.get_constant_value('H5T_PAD_ZERO');
H5T.set_pad(type_id,lsb,msb);

Получите дополнение.

[lsb_ret,msb_ret] = H5T.get_pad(type_id);
 switch(lsb_ret)
     case H5ML.get_constant_value('H5T_PAD_ZERO')
         fprintf('lsb pad type is zeros\n');
     case H5ML.get_constant_value('H5T_PAD_ONE');
         fprintf('lsb pad type is ones\n');
     case H5ML.get_constant_value('H5T_PAD_BACKGROUND')
         fprintf('lsb pad type is background\n');
 end
 switch(msb_ret)
     case H5ML.get_constant_value('H5T_PAD_ZERO')
         fprintf('msb pad type is zeros\n');
     case H5ML.get_constant_value('H5T_PAD_ONE');
         fprintf('msb pad type is ones\n');
     case H5ML.get_constant_value('H5T_PAD_BACKGROUND')
         fprintf('msb pad type is background\n');
 end

Создайте составной тип данных, затем добавьте члены в него.

Создайте новый составной тип данных.

type_id = H5T.create('H5T_COMPOUND',16);

Добавьте члены в составной тип данных.

H5T.insert(type_id,'first',0,'H5T_NATIVE_DOUBLE');
H5T.insert(type_id,'second',8,'H5T_NATIVE_INT');
H5T.insert(type_id,'third',12,'H5T_NATIVE_UINT');

Заблокируйте тип данных. При попытке добавить новый член в тип данных после того, как он будет заблокирован, операция перестанет работать.

H5T.lock(type_id)
H5T.insert(type_id,'fourth',12,'H5T_NATIVE_UINT'); % This should fail.

Определите, равны ли два типа данных.

Откройте набор данных '/g3/integer2D' и получите его тип данных.

fid = H5F.open('example.h5');
dset_id = H5D.open(fid,'/g3/integer2D');
dtype_id = H5D.get_type(dset_id);

Проверяйте если тип данных dtype_id равно типу данных HDF5 'H5T_STD_I32LE'. Затем закройте тип данных, набор данных и файл HDF5.

if H5T.equal(dtype_id,'H5T_STD_I32LE')
    fprintf('32-bit little endian integer\n');
end
H5T.close(dtype_id);
H5D.close(dset_id);
H5F.close(fid);
Представлено до R2006a