Запишите данные к набору данных 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-style. Консультируйтесь "Используя Низкоуровневые 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.