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 записывает каждый другой элемент и так далее.

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

Ограничения

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

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

расширить все

Поведение изменено в R2020a

Введенный в R2011a