2016-09-05 8 views
1

StackOverflowの質問とGoogle検索結果の多くは扱っていますが、多くのディスカッショントピックを読んでいますが、私の質問には適切な答えが見つかりませんでした。私はJava環境で36600ノード(36600x36600の隣接行列)を読んで操作する(行列ベクトルの乗算のような).mat形式のスパース行列を持っています。私はここで議論した多くの答えを適用しましたが、その.matファイルにデータがあったにもかかわらず、NullPointerExceptionエラーが発生しました(これらの結果はデー​​タのサイズによるものです)。 nullおよびNullPointerExceptionです。Javaでの.matファイル(隣接行列)の読み込みと処理

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

はまた、私は、私はあまりにも、これらの回ですべての結果を取得していない、JupyterノートでMATLAB環境とPython環境に.csvまたは.XLSする.MATファイルを変換するために、何度も試みたが、しています。

この.matファイルは隣接行列になり、Cytoscapeプロジェクトの特定のアルゴリズムのソースになります。したがって、私はJava環境でそれを使用しなければならず、行列操作にCOLTライブラリを使用することに決めました。提案や助言は私をとても助けてくれるでしょう。読んでくれてありがとう。

+0

データファイルのサイズは何ですか? – JMA

+0

@jafergasそのような750KB、疎なマトリックス。 –

答えて

0

だけ非ゼロ要素の行、列と値を取得し、テキスト、CSVまたは...としてこれらを保存するためにfindを使用します。

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

私はそれを使用していますが、複数の重複が混在することがあります。なぜなのかご存知ですか?詳細を示すために、その疎な行列のプレビューは、行と列として1、2、3、4、...のようになります。しかし、3次元の出力は2,2,2,2,2,1,1,1などです。 –

+0

3次元の列は、グラフのノード間の何らかの関係を表しますが、問題のドメインでは、実際には分かりませんその意味。 – rahnema1

関連する問題