hdf5write

Запишите данные к файлу в формате HDF5

Примечание

hdf5write будет удален в будущей версии. Используйте h5write вместо этого.

Синтаксис

hdf5write (имя файла, местоположение, набор данных)
hdf5write (имя файла, детали, набор данных)
hdf5write (имя файла, детали, атрибут)
hdf5write (имя файла, details1, dataset1, details2, dataset2...)
hdf5write (имя файла..., 'Режим записи', режим...)
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) пишет dataset в filename с помощью значений в структуре details. Для набора данных структура details может содержать следующие поля.

Имя поля

Описание

Тип данных

Местоположение

Местоположение набора данных в файле

Вектор символа или скаляр строки

Имя

Назовите, чтобы присоединить к набору данных

Вектор символа или скаляр строки

hdf5write(filename,details,attribute) пишет метаданным attribute в filename с помощью значений в структуре details. Для атрибута структура details может содержать следующие поля.

Имя поля

Описание

Тип данных

AttachedTo

Местоположение объекта этот атрибут изменяет

Массив структур

AttachType

Идентифицирует, какой объект этот атрибут изменяет; возможными значениями является 'group' и 'dataset'

Вектор символа или скаляр строки

Имя

Назовите, чтобы присоединить к набору данных

Вектор символа или скаляр строки

hdf5write(filename, details1, dataset1, details2, dataset2,...) пишет несколько наборов данных и сопоставленных атрибутов к filename в одной операции. Каждый набор данных и атрибут должны иметь связанную структуру details.

hdf5write(filename,...,'WriteMode',mode,...) задает, перезаписывает ли hdf5write существующий файл (значение по умолчанию) или добавляет наборы данных и приписывает файлу. Возможными значениями для режима является 'overwrite' и 'append'.

hdf5write..., 'V71Dimensions', BOOL), задает, изменить ли большинство наборов данных, записанных в файл. Если BOOL верен, hdf5write переставляет первые две размерности набора данных, как это сделало в предыдущих релизах (MATLAB® 7.1 [R14SP3] и ранее). Это поведение было предназначено, чтобы составлять различие в том, как HDF5 и MATLAB выражают измерения массива. HDF5 описывает размерности набора данных в главном строкой порядке; MATLAB хранит данные в порядке развертывания по столбцам. Однако перестановка этих размерностей не может правильно отразить намерение данных и может делать недействительным метаданные. Когда BOOL является ложным (значение по умолчанию), данные, записанные в файл правильно, отражает упорядоченное расположение данных наборов данных — каждая размерность в наборах данных файла совпадает с той же размерностью в соответствующей переменной 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 совпадают с Полем данных объекта.

Примеры

Запишите набор данных 5 на 5 значений uint8 корневой группе.

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

Была ли эта тема полезной?