问题
I have some data that I would like to save to a MAT file (version 4 or 5, or any version, for that matter). The catch: I wanted to do this without using matlab libraries, since this code will not necessary run in a machine with matlab. My program uses Java and C++, so any existing library in those languages that achieves this could help me out...
I did some research but did not find anything in Java/C++. However, I found that scipy on python achieves this with mio4.py
or mio5.py
. I thought about implementing this on java or C++, but it seems a bit out of my time schedule.
So the question is: is there any libraries in Java or C/C++ that permits saving MAT files without using Matlab libraries?
Thanks a lot
回答1:
C: matio
Java: jmatio
(I'm really tempted to, so I will, tell you to learn to google)
But really, it's not that hard to write matfiles using fwrite
if you don't need to handle some of the more complex stuff (nested structs, classes, functions, sparse matrix, etc).
See: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf
回答2:
MAT files since version 7 are HDF5 based. I recall that they use some rather funny conventions, but you may be able to reverse engineer what you need. There are certainly HDF5 writing libraries for both Java and C++.
Along these lines, Matlab can read/write several standard formats, including HDF5. It may be easiest to write your data in "standard" HDF5 and read it into the desired data structure within Matlab.
来源:https://stackoverflow.com/questions/2700195/write-a-mat-file-without-using-matlab-headers-and-libraries