Я нашел аналогичный вопрос в Пример кода HDF5
, но у меня возникли проблемы корректный просмотр содержимого набора данных hdf5.
Набор данных, на который я смотрю, содержит заголовки строк со строками в первом столбце и удвоениями в других.
Вот как выглядит мой код:
public static void readh5(string path, string filename)
{
H5.Open();
var fileID = H5F.open(path + filename, H5F.OpenMode.ACC_RDONLY);
var groupID = H5G.open(fileID, "/Example Group/");
var datasetID = H5D.open(groupID, "Events");
var dataSpace = H5D.getSpace(datasetID);
var size = H5S.getSimpleExtentDims(dataSpace);
var dataType = H5D.getType(datasetID);
double[,] dataArray = new double[size[0],11];
var wrapArray = new H5Array<double>(dataArray);
H5D.read(datasetID, dataType, wrapArray);
Console.WriteLine(wrapArray);
}
Когда я отлаживаю и просматриваю wrapArray, каждый элемент невероятно велик или мал, удваивается от 10 ^ 300 до 10 ^ -300, и я не знаю, почему. Я не думаю, что это идентификационные номера элементов. Я попытался изменить тип данных wrapArray и dataArray на объект, но это все равно не дает мне точного содержимого набора данных.
Вывод, который я получаю для wrapArray, выглядит так:
[0,0] 4.0633928641260729E+87
[0,1] 9.77854726248995E-320
[0,2] 1.52021104712121E-312
и Т. Д.
Но я хочу:
[0,0] Event1
[0,1] 2
[0,2] 56
и Т. Д.
После прочтения набора данных я хочу пройтись по первому столбцу, чтобы найти определенные строки, и получить соответствующие элементы в других столбцах. Но я должен выяснить это.