Я хотел бы прочитать файл HDF5, используя c ++, который имеет массив ссылок на объекты. Я могу получить правильные результаты в Python, но у меня были проблемы с C ++.
Я попробовал несколько примеров c из учебной документации, но похоже, что обёртки c ++ отсутствуют, и пробелы заполнить сложно.
H5File file = H5File("example.h5", H5F_ACC_RDONLY);
DataSet dataset = file.openDataSet("units/electrode_group");
H5T_class_t type_class = dataset.getTypeClass();
cout << type_class << endl; // correctly obtains H5T_REFERENCE.
// Need to read and apply the references next.
Следующий код на python делает все, что я хочу, но мне нужна версия c ++.
import h5py
FileName = 'example.h5'
myHDF5file = h5py.File(FileName)
ElectrodeGroup = myHDF5file['units/electrode_group']
for electrodeRef in ElectrodeGroup:
print(myHDF5file[electrodeRef].name)
The python code correctly prints:
/general/extracellular_ephys/shank1
/general/extracellular_ephys/shank1
/general/extracellular_ephys/shank2
/general/extracellular_ephys/shank3