exponenta event banner

H5D.write

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

Синтаксис

H5D.write(dataset_id,mem_type_id,mem_space_id,file_space_id,plist_id,buf)

Описание

H5D.write(dataset_id,mem_type_id,mem_space_id,file_space_id,plist_id,buf) записывает набор данных, указанный dataset_id из буфера памяти приложения buf в файл. plist_id указывает свойства передачи данных. mem_type_id определяет тип данных памяти набора данных. mem_space_id и file_space_id определите часть набора данных для записи. Тип данных памяти обычно должен быть 'H5ML_DEFAULT', который указывает, что MATLAB ® должен определять соответствующий тип данных памяти.

Примечание

Библиотека HDF5 использует упорядочение в стиле C для многомерных массивов, а MATLAB - в стиле FORTRAN. Пожалуйста, консультируйтесь «Используя Функции HDF5 Низкого уровня MATLAB» в документации MATLAB для получения дополнительной информации.

Примеры

Запись во всю систему 36 на 19 /g4/world пример набора данных.

srcFile = fullfile(matlabroot,'toolbox','matlab','demos','example.h5');
copyfile(srcFile,'myfile.h5');
fileattrib('myfile.h5','+w');
plist = 'H5P_DEFAULT';
fid = H5F.open('myfile.h5','H5F_ACC_RDWR',plist);
dset_id = H5D.open(fid,'/g4/world');
dims = [36 19];
data = rand(dims);
H5D.write(dset_id,'H5ML_DEFAULT','H5S_ALL','H5S_ALL',plist,data);
H5D.close(dset_id);
H5F.close(fid);

Запись во весь двухэлементный /g3/VLstring набор данных.

srcFile = fullfile(matlabroot,'toolbox','matlab','demos','example.h5');
copyfile(srcFile,'myfile.h5');
fileattrib('myfile.h5','+w');
h5disp('myfile.h5','/g3/VLstring');
plist = 'H5P_DEFAULT';
fid = H5F.open('myfile.h5','H5F_ACC_RDWR',plist);
dset_id = H5D.open(fid,'/g3/VLstring');
data = {'dogs'; 'dogs and cats'};
H5D.write(dset_id,'H5ML_DEFAULT','H5S_ALL','H5S_ALL',plist,data);
H5D.close(dset_id);
H5F.close(fid);
data_out = h5read('myfile.h5','/g3/VLstring');

Запишите блок данных 10 на 5 в местоположение, начиная с индекса строки 15 и индекса столбца 5 того же набора данных. Напомним, что индексация основана на нуле.

srcFile = fullfile(matlabroot,'toolbox','matlab','demos','example.h5');
copyfile(srcFile,'myfile.h5');
fileattrib('myfile.h5','+w');
plist = 'H5P_DEFAULT';
fid = H5F.open('myfile.h5','H5F_ACC_RDWR',plist);
dset_id = H5D.open(fid,'/g4/world');
start = [15 5];
h5_start = fliplr(start);
block = [10 5];
h5_block = fliplr(block);
mem_space_id = H5S.create_simple(2,h5_block,[]);
file_space_id = H5D.get_space(dset_id);
H5S.select_hyperslab(file_space_id,'H5S_SELECT_SET',h5_start,[],[],h5_block);
data = rand(block);
H5D.write(dset_id,'H5ML_DEFAULT',mem_space_id,file_space_id,plist,data);
H5D.close(dset_id);
H5F.close(fid);

Ограничения

  • Запись в наборы данных переменной длины возможна только в том случае, если класс типа данных набора данных является одним из следующих:

    • H5T_INTEGER

    • H5T_FLOAT

    • H5T_STRING с переменной длиной или фиксированной длиной 1.

См. также