Создание набора данных 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
filename - Имя файлаИмя файла, указанное как вектор символов или скаляр строки, содержащий имя файла HDF5.
В зависимости от места, в которое вы пишете, filename может принять одну из этих форм.
Местоположение | Форма | ||||||
|---|---|---|---|---|---|---|---|
| Текущая папка | Для записи в текущую папку укажите имя файла в Пример:
| ||||||
Другие папки | Чтобы записать в папку, отличную от текущей, укажите полный или относительный путь в Пример:
Пример:
| ||||||
Удаленное расположение | Для записи в удаленное расположение
В зависимости от вашего удаленного местоположения,
Дополнительные сведения см. в разделе Работа с удаленными данными. Пример:
|
Если filename не существует, h5create создает его.
Если указать существующее имя файла HDF5 и новое имя набора данных, то h5create добавит новый набор данных в существующий файл HDF5.
ds - Имя набора данныхИмя набора данных, указанное как вектор символов или строковый скаляр, содержащий полное имя пути создаваемого набора данных. Если в имени набора данных указаны промежуточные группы, которые ранее не существовали, то h5create создает их.
sz - Размер набора данныхРазмер набора данных, указанный как вектор строки. Чтобы задать неограниченный размер, укажите соответствующий элемент sz как Inf.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Deflate','9''Datatype' - Тип данных'double' (по умолчанию) | 'single' | 'uint64' | 'uint32' | 'uint16' | …Тип данных набора данных, указанный как разделенная запятыми пара, состоящая из 'Datatype' и любой из следующих типов данных MATLAB ®.
'double'
'single'
'uint64'
'int64'
'uint32'
'int32'
'uint16'
'int16'
'uint8'
'int8'
'string'
'ChunkSize' - Размер блокаРазмер блока, указанный как разделенная запятыми пара, состоящая из 'ChunkSize' и вектор строки, содержащий размеры порции. Длина 'ChunkSize' должен равняться длине размера набора данных sz. ChunkSize необходимо указать, чтобы задать любой размер в sz кому Inf.
'Deflate' — gzip уровень сжатияgzip уровень сжатия, заданный как числовое значение от 0 до 9, где 0 - самый низкий уровень сжатия, а 9 - самый высокий.
'FillValue' - Заполнить значение для отсутствующих данных0 (по умолчанию) | числовое значениеЗаполните значение для отсутствующих данных в числовых наборах данных. FillValue должно быть числовым значением.
'Fletcher32' - 32-разрядный фильтр контрольной суммы Fletcherfalse или 0 (по умолчанию) | true или 132-битный фильтр контрольной суммы Флетчера, указанный как разделенная запятыми пара, состоящая из «Fletcher32» и числового или логического 1 (true) или 0 (false). Фильтр контрольной суммы Fletcher предназначен для проверки того, что переданные данные в файле не содержат ошибок.
'Shuffle' - Фильтр-перетасовкаfalse или 0 (по умолчанию) | true или 1Фильтр тасования, указанный как разделенная запятыми пара, состоящая из 'Shuffle' и числовой или логический 1 (true) или 0 (false). Фильтр тасования представляет собой алгоритм, предназначенный для улучшения степени сжатия путем перегруппировки порядка байтов данных, хранящихся в памяти.
'TextEncoding' - Кодировка текста'UTF-8' (по умолчанию) | 'system'Кодировка текста, заданная как разделенная запятыми пара, состоящая из 'TextEncoding' и одно из этих значений:
'UTF-8' - Представляет символы с помощью UTF-8 кодировки.
'system' - Представление символов в виде байтов с использованием системной кодировки (не рекомендуется).
h5create не поддерживает создание файлов, хранящихся удаленно в HDFS™.
Хранение блоков относится к способу хранения набора данных в памяти путем разделения его на меньшие части данных, известные как «фрагменты». Разбиение набора данных может повысить производительность при работе с подмножеством набора данных, поскольку порции можно считывать и записывать в HDF5 файл по отдельности.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.