したがって、Matlabには36個の36個の行列が配列されています。そのArrayをAという名前で.matとして保存しました。その後、RパッケージR.matlabを使用してファイルをインポートしました。私は、Rパッケージpcalgの関数shdを使って、配列Aの10個の行列それぞれの構造ハミング距離を求めようとしています。R.matlabを使用してMATLABからインポートされた配列から単一の行列を引き出す
library(pcalg)
library(R.matlab)
testfile = readMat("SingleMatrix.mat")
testfile = as.matrix(testfile$SingleMatrix)
library(igraph)
Test=as.graphnel(graph.adjacency(testfile, weighted = T))
shd(Correct,Test)
を次のように通常のマトリックスのためにこれを行うプロセスである、これは試験マトリックスへの正しいマトリックスを比較するだけで数である構造ハミング距離を与えます。
MatlabからRにインポートされたときに配列が変換されるリストについて、これを行うにはどうすればよいですか?私は、10個の行列それぞれの構造ハミング距離が必要です。それらを引き出し、それらをグラフタイプに変換して比較を行うことを自動化する方法はありますか?
インポートされたデータの構造は、次のようになります。
str(testfile)
List of 1
$ K210000ALARM:List of 10
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 1 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
..$ :List of 1
.. ..$ : num [1:37, 1:37] 0 0 0 0 0 0 0 0 0 0 ...
- attr(*, "header")=List of 3
..$ description: chr "MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Tue Jan 31 06:58:46 2017 "
..$ version : chr "5"
..$ endian : chr "little"