чтение данных из Matlab в Java - PullRequest
6 голосов
/ 16 марта 2012

Я пытаюсь прочитать матрицу, созданную в Matlab, в двумерный массив в Java. До сих пор я использовал jmatio для записи из java в файл .mat (успешно), но теперь не могу обойтись наоборот. Мне удалось импортировать матрицу в объект MLArray, используя этот код:

matfilereader = new MatFileReader("filename.mat");
MLArray j = matfilereader.getMLArray("dataname");

Но кроме получения строкового представления, мне не удалось получить доступ к самим данным. Я не нашел такого примера или документации по самой библиотеке, и на самом деле я написал функцию для разбора начальной строки в массив double [] [], но это хорошо, только если матрица меньше 1000 элементов ...

Буду благодарен за любой опыт или советы, спасибо,

Amir

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

matfilereader.getMLArray имеет несколько подклассов для доступа к различным типам данных в объекте MLArray.

Чтобы представить двойной массив, вы можете привести MLArray к MLDouble:

MLDouble j = (MLDouble)matfilereader.getMLArray("dataname");
0 голосов
/ 16 марта 2012

Я не знаком с этим инструментом, но он довольно старый.Попробуйте сохранить в более старую версию файла *.mat и посмотреть, изменится ли ваш результат.То есть добавьте флаг '-v7.0' или '-v6' при сохранении файла r * .mat.

Пример кода:

save filename var1 var2 -v7.0

или

save filename var1 var2 -v6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...