exponenta event banner

h5create

Создание набора данных HDF5

Описание

пример

h5create(filename,ds,sz) создает набор данных ds имя которого включает его полное расположение в файле HDF5 filenameи с размером, указанным sz.

пример

h5create(filename,ds,sz,Name,Value) указывает один или несколько необязательных аргументов пары имя-значение.

Например, 'ChunkSize',[5 5] задает 5-на-5 порций набора данных, которые могут храниться отдельно в файле HDF5.

Примеры

свернуть все

Создание набора данных фиксированного размера 100 на 200 на 300 'myDataset' полный путь которого указан как '/g1/g2/myDataset'.

h5create('myfile.h5','/g1/g2/myDataset',[100 200 300])

Запись данных в 'myDataset'. Поскольку размеры 'myDataset' являются фиксированными, объем записываемых в него данных должен соответствовать их размеру.

mydata = ones(100,200,300);
h5write('myfile.h5','/g1/g2/myDataset',mydata)
h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Group '/g1' 
        Group '/g1/g2' 
            Dataset 'myDataset' 
                Size:  100x200x300
                MaxSize:  100x200x300
                Datatype:   H5T_IEEE_F64LE (double)
                ChunkSize:  []
                Filters:  none
                FillValue:  0.000000

Создайте набор данных с одной точностью 1000 на 2000 и примените самый высокий уровень сжатия. При применении сжатия HDF5 необходимо использовать хранилище блоков.

h5create('myfile.h5','/myDataset2',[1000 2000],'Datatype','single', ...
          'ChunkSize',[50 80],'Deflate',9)

Отображение содержимого всего файла HDF5.

h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Dataset 'myDataset2' 
        Size:  1000x2000
        MaxSize:  1000x2000
        Datatype:   H5T_IEEE_F32LE (single)
        ChunkSize:  50x80
        Filters:  deflate(9)
        FillValue:  0.000000

Создание двумерного набора данных '/myDataset3' это неограниченно вдоль второго измерения. ChunkSize необходимо указать, чтобы любой размер набора данных был равен Inf.

h5create('myfile.h5','/myDataset3',[200 Inf],'ChunkSize',[20 20])

Запись данных в '/myDataset3'. Можно записать данные любого размера вдоль второго размера в '/myDataset3', так как его второе измерение неограниченно.

mydata = rand(200,500);
h5write('myfile.h5','/myDataset3',mydata,[1 1],[200 500])

Отображение всего содержимого файла HDF5.

h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Dataset 'myDataset3' 
        Size:  200x500
        MaxSize:  200xInf
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  20x20
        Filters:  none
        FillValue:  0.000000

Входные аргументы

свернуть все

Имя файла, указанное как вектор символов или скаляр строки, содержащий имя файла HDF5.

В зависимости от места, в которое вы пишете, filename может принять одну из этих форм.

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

Форма

Текущая папка

Для записи в текущую папку укажите имя файла в filename.

Пример: 'myFile.h5'

Другие папки

Чтобы записать в папку, отличную от текущей, укажите полный или относительный путь в filename.

Пример: 'C:\myFolder\myFile.h5'

Пример: 'myFolder\myFile.h5'

Удаленное расположение

Для записи в удаленное расположение filename должен содержать полный путь к файлу, указанному как унифицированный указатель ресурса (URL) формы:

scheme_name://path_to_file/my_file.ext

В зависимости от вашего удаленного местоположения, scheme_name может быть одним из значений в этой таблице.

Удаленное расположениеscheme_name
Амазонский S3™s3
Хранилище больших двоичных объектов Windows Azure ®wasb, wasbs

Дополнительные сведения см. в разделе Работа с удаленными данными.

Пример: 's3://bucketname/path_to_file/myFile.h5'

  • Если filename не существует, h5create создает его.

  • Если указать существующее имя файла HDF5 и новое имя набора данных, то h5create добавит новый набор данных в существующий файл HDF5.

Имя набора данных, указанное как вектор символов или строковый скаляр, содержащий полное имя пути создаваемого набора данных. Если в имени набора данных указаны промежуточные группы, которые ранее не существовали, то h5create создает их.

Размер набора данных, указанный как вектор строки. Чтобы задать неограниченный размер, укажите соответствующий элемент sz как Inf.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Deflate','9'

Тип данных набора данных, указанный как разделенная запятыми пара, состоящая из 'Datatype' и любой из следующих типов данных MATLAB ®.

  • 'double'

  • 'single'

  • 'uint64'

  • 'int64'

  • 'uint32'

  • 'int32'

  • 'uint16'

  • 'int16'

  • 'uint8'

  • 'int8'

  • 'string'

Размер блока, указанный как разделенная запятыми пара, состоящая из 'ChunkSize' и вектор строки, содержащий размеры порции. Длина 'ChunkSize' должен равняться длине размера набора данных sz. ChunkSize необходимо указать, чтобы задать любой размер в sz кому Inf.

gzip уровень сжатия, заданный как числовое значение от 0 до 9, где 0 - самый низкий уровень сжатия, а 9 - самый высокий.

Заполните значение для отсутствующих данных в числовых наборах данных. FillValue должно быть числовым значением.

32-битный фильтр контрольной суммы Флетчера, указанный как разделенная запятыми пара, состоящая из «Fletcher32» и числового или логического 1 (true) или 0 (false). Фильтр контрольной суммы Fletcher предназначен для проверки того, что переданные данные в файле не содержат ошибок.

Фильтр тасования, указанный как разделенная запятыми пара, состоящая из 'Shuffle' и числовой или логический 1 (true) или 0 (false). Фильтр тасования представляет собой алгоритм, предназначенный для улучшения степени сжатия путем перегруппировки порядка байтов данных, хранящихся в памяти.

Кодировка текста, заданная как разделенная запятыми пара, состоящая из 'TextEncoding' и одно из этих значений:

  • 'UTF-8' - Представляет символы с помощью UTF-8 кодировки.

  • 'system' - Представление символов в виде байтов с использованием системной кодировки (не рекомендуется).

Ограничения

  • h5create не поддерживает создание файлов, хранящихся удаленно в HDFS™.

Подробнее

свернуть все

Хранилище блоков в HDF5

Хранение блоков относится к способу хранения набора данных в памяти путем разделения его на меньшие части данных, известные как «фрагменты». Разбиение набора данных может повысить производительность при работе с подмножеством набора данных, поскольку порции можно считывать и записывать в HDF5 файл по отдельности.

Представлен в R2011a