There are two alternatives
- Use Matlab's high level functions to write the real and the imaginary part to separate datasets
- Create a compound datatype, which requires Matlab's low level hdf support. The documentation of the low level functions is sparse. See Example 9. A compound datatype for complex numbers
There should be no problems to read either with any languages, which have HDF5-support.
"something out there"   I don't think so, however, see
- http://se.mathworks.com/matlabcentral/answers/160455#answer_157626 and
- http://se.mathworks.com/matlabcentral/newsreader/view_thread/244289
- HDF5 data to struct reader by Pauli Virtanen says [...] Complex numbers are also supported; compound datasets with two fields 'r' and 'i' interpreted as complex numbers.
- https://groups.google.com/forum/#!topic/comp.soft-sys.matlab/PibURS-SbgM