2016-09-05 7 views
1

Я рассмотрел множество вопросов StackOverflow и результаты поиска Google, прочитал много дискуссионных тем, но я не смог найти правильный ответ на мой вопрос. У меня есть разреженная матрица в формате .mat, которая содержит 36600 узлов (матрица смежности 36600x36600) для чтения и манипулирования (например, умножения матричного вектора) в среде Java. Я применил много ответов, которые обсуждались здесь, но у меня всегда были ошибки NullPointerException, хотя в этих файлах .mat были данные. (Некоторые говорят, что этот результат связан с размером данных). Я применил следующий код к моему .mat-файлу, который возвращает null и NullPointerException.Чтение и обработка файла .mat (Matrix Adjacency) в Java

MatFileReader matfilereader = new MatFileReader("sourceData.mat"); 
MLArray mlArrayRetrieved = matfilereader.getMLArray("data"); 
System.out.println(mlArrayRetrieved); 
System.out.println(mlArrayRetrieved.contentToString()); 

Кроме того, я много раз пытался преобразовать .mat файл .csv или .xls в среде MATLAB и Python среды на Jupyter ноутбуков, но я не получил никакого результата в это время тоже.

Этот файл .mat будет представлять собой матрицу смежности и будет источником для конкретного алгоритма в проекте Cytoscape. Следовательно, я должен использовать его в Java Environment, и я решил использовать библиотеку COLT для матричных манипуляций. Предложения и советы помогут мне так много. Спасибо за прочтение.

+0

Каков размер файла данных? – JMA

+0

@jafergas примерно 750KB, редкая матрица. –

ответ

0

просто использовать find, чтобы получить строки, столбцы и значения ненулевых элементов и сохранить их как текст, CSV или ...:

[row, col, v] = find(my_spares_matrix); 
+0

Я использовал, и он работает, но я вижу много дубликатов со смешанным заказом. Ты знаешь почему? Чтобы предоставить подробную информацию, предварительный просмотр этой разреженной матрицы похож на 1, 2, 3, 4, ... как строки и столбцы. Но вывод трех измерений похож на 2,2,2,2,2,1,1,1 и т. Д. –

+0

3D-столбец представляет собой некоторую взаимосвязь между узлами графа, но в вашей проблемной области я не знаю действительно что это значит. – rahnema1