我在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 的非常大或小的双打,我不知道为什么。我不认为这些是元素的 ID 号。我尝试将 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
等等
在读取数据集后,我想遍历第一列以查找特定字符串,并获取其他列中的相应元素。但我必须弄清楚这一点。