Writing data as a table in a hdf5 file.

27 views (last 30 days)
Simon
Simon on 13 Jul 2012
Commented: per isakson on 21 Feb 2016
I'm trying to write MATLAB data to an existing database of hdf5 files. Data in the database is currently being stored as table. The tables' columns can be different data types such as an integer or a string etc. and the columns also have labels like "longitude", "Name of patient" etc as a property of the table.
I think MATLAB's struct datatype is equivalent to the hdf5 table but I'm not sure how to save it. MATLAB says that the array is not numeric when I try to save the struct, DataStruct, in the example below.
h5write('h5testfile.h5', '/foo/Test', DataStruct);
Any ideas how I can fix this problem?

Answers (1)

John
John on 13 Jul 2012
Only numeric data can be written with H5WRITE. In order to write table or compound data, you will need to use "formal" interfaces that wrap the HDF5 library API.
We provided the HDF Group with MATLAB versions of their own example codes that may help demonstrate how to do this. I would suggest that you go to http://www.hdfgroup.org/ftp/HDF5/examples/examples-by-api/api18-m.html and check out the compound data examples. Let me know how it goes.
  3 Comments
John
John on 18 Jul 2012
I don't think I have enough information to tell what might be going wrong.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!