我正在研究将 HDF5 与 C# 和 Matlab/Octave 一起用于我的数据存储。我目前有一个相当基本的问题......我可以在 h5 文件中创建和保存一维数据集,但无法理解二维数据集的代码:
我的二维矩阵(来自列表列表)
List<List<int>> table = new List<List<int>>();
List<int> row;
for (int a=1;a<13;a++)
{
row = new List<int>();
for (int b=1;b<13;b++)
row.Add(a*b);
table.Add(row);
}
// Require an array containing dimensions of array to store.
long[] dims = new long[2];
dims[0] = table.Count;
dims[1]=table[0].Count;
int[][] arrays = table.Select(a => a.ToArray()).ToArray();
到现在为止还挺好。现在,要创建 HDF5 文件...
H5DataSpaceId spaceId = H5S.create_simple(1, dims);
H5DataTypeId typeId = H5T.copy(H5T.H5Type.NATIVE_INT);
H5DataSetId dset = H5D.create(h5fileid, "TimesTables", typeId, spaceId);
现在,以下行我成功用于一维数组,但我找不到二维数组的语法......
H5D.write(dset,typeId,new H5Array<int>(arrays));
我的第二个问题是如何创建组和组组?到目前为止我还没有开始工作,但我会很感激一个起点,同时我会继续努力!