Напишите файл MAT без использования заголовков и библиотек Matlab

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

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

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

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

Ответ 1

C: matio
Java: jmatio
(Я действительно искушаюсь, поэтому я расскажу вам, чтобы научиться google)

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

Ответ 2

Файлы MAT, так как версия 7 основана на HDF5. Я помню, что они используют несколько довольно забавных условностей, но вы можете перестроить то, что вам нужно. Есть, конечно, библиотеки записи HDF5 для Java и С++.

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