Написать файл MAT без использования заголовочных файлов и библиотек matlab - PullRequest
10 голосов
/ 23 апреля 2010

У меня есть некоторые данные, которые я хотел бы сохранить в файле MAT (версия 4 или 5 или любая другая версия). Подвох: я хотел сделать это без использования библиотек matlab, так как этот код не обязательно будет запускаться на машине с matlab. Моя программа использует Java и C ++, поэтому любая существующая библиотека на тех языках, которая этого достигает, может мне помочь ...

Я провел некоторые исследования, но ничего не нашел в Java / C ++. Однако я обнаружил, что scipy на python достигает этого с mio4.py или mio5.py. Я думал о реализации этого на Java или C ++, но это, кажется, немного выходит за рамки моего графика.

Таким образом, вопрос заключается в следующем: есть ли в Java или C / C ++ библиотеки, которые позволяют сохранять файлы MAT без использования библиотек Matlab?

Большое спасибо

Ответы [ 2 ]

12 голосов
/ 23 апреля 2010

C: matio
Java: jmatio
(Мне очень хочется, поэтому я скажу вам научиться гуглить)

Но на самом деле не так сложно написать matfiles, используя fwrite, если вам не нужно обрабатывать некоторые из более сложных вещей (вложенные структуры, классы, функции, разреженные матрицы и т. Д.). Смотри: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf

5 голосов
/ 23 апреля 2010

MAT файлы начиная с версии 7 основаны на HDF5. Напомню, что они используют довольно забавные соглашения, но вы можете изменить то, что вам нужно. Конечно, есть библиотеки для написания HDF5 для Java и C ++.

Кроме того, Matlab может читать / записывать несколько стандартных форматов, включая HDF5. Возможно, проще всего записать ваши данные в «стандартный» HDF5 и прочитать их в нужную структуру данных в Matlab.

...