Does Matlab HDF5 read support use of compound attributes?


#1

Hello community! New poster here. Thanks for any help that can be offered.

I have an HDF5 database that contains attributes that have compound datatype. When I run h5info from Matlab on my database, it generates an error message. I tracked down the problem and it dealt with the compound datatype in my database. When I deleted my compound datatype from my database, h5info works. There’s nothing special about my compound datatype. It contains an integer value and two double array. So my question is, can h5info handle compound datatypes within attributes, which are valid in HDF5 OR is there a way to read these attributes in MATLAB from high or low level? I am using Matlab 2016 b for reference.

The error returned is:

Error using h5infoc
No MATLAB class corresponds to floating point numbers with more than 64 bits.
Error in h5info (line 101)
hinfo = h5infoc(filename, location, useUtf8);
Error in h5disp>display_hdf5 (line 112)
hinfo = h5info(options.Filename, options.Location);
Error in h5disp (line 90)
display_hdf5(options);

When I tried to use low level functions to get into the attribute I noticed this however. I could open the h5 file and get the file id and the group id that contained the attribute with the compound type just fine. I could even get the attribute id by calling H5A.open through my group. When I called read on the attribute through H5A it returned the same error as above.

So I called H5A.get_info on the attribute id it returned

ans =
struct with fields:
corder_valid:1
corder:1
cset:0
data_size:280

This leads me to believe that not all compound datatypes are allowed within an Hdf5 attribute. Again any help would be greatly appreciated.