exponenta event banner

h5write

Запись в HDF5 набор данных

Описание

пример

h5write(filename,ds,data) записывает данные во весь набор данных, ds, в указанном файле HDF5. Если размер набора данных фиксирован, объем записываемых данных должен соответствовать размеру набора данных.

пример

h5write(filename,ds,data,start,count) записывает подмножество данных в набор данных, начиная с начального местоположения startи продолжение для count элементы. В многомерном наборе данных count задает расстояние в каждом направлении. h5write при необходимости расширяет расширяемый набор данных вдоль любых неограниченных размеров.

пример

h5write(filename,ds,data,start,count,stride) задает интервал между элементами, stride, вдоль каждого измерения набора данных.

Примеры

свернуть все

Создание набора данных 10 на 20 с именем DS1.

h5create('myfile.h5','/DS1',[10 20])

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

mydata = rand(10,20);
h5write('myfile.h5', '/DS1', mydata)

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

h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Dataset 'DS1' 
        Size:  10x20
        MaxSize:  10x20
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  []
        Filters:  none
        FillValue:  0.000000

Создание набора данных 10 на 20 с именем DS2.

h5create('myfile.h5','/DS2',[10 20])

Запишите подмножество данных 5 на 7 в последний блок 5 на 7 набора данных. Определить count как [5 7] для соответствия размеру записываемых данных. Определить start как [6 14], потому что перемещение count ячейки с этой начальной точки будут заканчиваться последним элементом набора данных.

mydata = rand(5,7);
h5write('myfile.h5','/DS2',mydata,[6 14],[5 7])

Запись данных в набор данных, имеющий неограниченное измерение.

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

h5create('myfile.h5','/g2/DS2',[20 Inf],"Chunksize",[5 5]);

Запись блока данных 3 на 3 в '/g2/DS2'. Начать с начальной точки [3 2] и запись в конец блока. Можно записывать данные любого размера вдоль второго измерения набора данных, так как оно неограниченно.

data = rand(3);
start = [3 2];
count = [3 3];
h5write('myfile.h5','/g2/DS2',data,start,count);

Считывание всех данных из набора данных.

h5read('myfile.h5','/g2/DS2')
ans = 20×4

         0         0         0         0
         0         0         0         0
         0    0.8147    0.9134    0.2785
         0    0.9058    0.6324    0.5469
         0    0.1270    0.0975    0.9575
         0         0         0         0
         0         0         0         0
         0         0         0         0
         0         0         0         0
         0         0         0         0
      ⋮

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

свернуть все

Имя файла, указанное как вектор символов или скаляр строки, содержащий имя существующего файла 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'

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

Данные для записи в файл HDF5. Если числовой тип данных был указан в соответствующем вызове h5create, то data - числовая матрица, содержащая данные с плавающей запятой или целочисленные данные. Данные не должны быть разреженными и должны иметь тот же размер, что и HDF5 набор данных, если не указан start или count. Если измерение в наборе данных не ограничено, то записываемые данные могут иметь любой размер.

Если 'string' был указан как тип данных в соответствующем вызове h5create, data является массивом строк MATLAB. Размеры массива строк должны совпадать с размерами, указанными в вызове h5create.

Начальное расположение, указанное как числовой вектор положительных целых чисел. Для N-мерного набора данных start - вектор длины N, содержащий индексы на основе 1. Элементы start соответствуют по порядку измерениям набора данных.

Если не указать start, то h5write функция начинает запись в набор данных из первого индекса по каждому измерению.

Число записываемых элементов, указанное как числовой вектор положительных целых чисел. Для N-мерного набора данных count - вектор длиной N, задающий количество элементов для записи в набор данных вдоль каждого измерения. Элементы count соответствуют по порядку измерениям набора данных.

Интервал между элементами вдоль каждого размера набора данных, определяемый как числовой вектор целых чисел. Для N-мерного набора данных stride является вектором длины N. Элементы stride вектор соответствует по порядку измерениям набора данных. Значение 1 записывает без пропуска элементов в соответствующем измерении, тогда как значение 2 записывает каждый другой элемент и так далее.

Если шаг не указан, то h5write функция записывает данные без пропуска по каждому измерению.

Ограничения

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

Вопросы совместимости

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

В R2020a изменилось поведение

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