我想使用具有对象引用数组的c ++读取HDF5文件。我可以在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