To achieve a dataset with columns and rows the way it is described, you need to play with compound data types.
In HDFql, a high-level (declarative) language to manage HDF5 files, this can easily be achieved as follows in C (in addition to C, HDFql supports C++, C#, Java, Python, R and Fortran):
// create an HDF5 file named 'test.h5' and use (i.e. open) it
hdfql_execute("CREATE AND USE FILE test.h5");
// create a compound dataset named 'dset' with three members ('col_1', 'col_2' and 'col_3') of type double with five rows
hdfql_execute("CREATE DATASET dset AS COMPOUND(col_1 AS DOUBLE, col_2 AS DOUBLE, col_3 AS DOUBLE)(5)");
Yes, I meant HDFView. I didn’t see a difference with 1-based but I don’t have any row or column headers. Looking into compound datasets for the row headers. I’m not sure about the column headers
I’m not sure what you mean by “row headers.” There are row indexes, the greyish leftmost column, 1-based.
This is a 1D dataset (array). Each element (cell) of the dataset has three fields (id, time, matrix), but they are fields of the compound datatype, not the dataset. You are welcome to think about this as a table, but it is not a table in the sense of tables in the relational model. As it is set up, HDFView renders ND-arrays as stacks of 2D slices. Aside from the array indices, there are no headers to speak of. One could write a GUI module to change that rendering or modify the HDFView code to change the rendering of 1D compound datasets, but that’s not been done to my knowledge.
A row header is the label at the start of the row. Here is a dataset of inflation by state and by month. The row header is the month, the column header is the state
TX MI WA
Jan 9.0 9.1 8.9
Feb 8.1 8.2 8.5
Mar 7.0 7.3 7.1
Apr 5.5 5.6 5.7
May 4.1 4.2 4.3