【发布时间】:2013-01-23 13:26:49
【问题描述】:
我在HDF5 Example code发现了一个类似的问题
但我无法正确查看 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
等等。
读入数据集后,我想遍历第一列以查找特定字符串,并获取其他列中的相应元素。但我必须弄清楚这一点。
【问题讨论】: