如何删除matlab中的重复边

时间:2015-09-20 02:15:42

标签: matlab bigdata graph-theory duplicate-removal

我有一个4850626行的表,4850626行2425313中的三列是重复的。该表将如下所示

node1   node2   score
225     128      0.9
256     857      0.7
128     225      0.9
857     256      0.7
 .       .        .
 .       .        .

如何从这张大表中删除副本?

2 个答案:

答案 0 :(得分:1)

一个非常简单的方法是:

如果您的矩阵为A,那么Au = unique(A, 'rows');将返回一个矩阵Au,其中只包含A中的唯一行。

答案 1 :(得分:1)

从:

开始
A = [ 225 128 0.9 ; 256 857 0.7 ; 128 225 0.9 ; 857 256 0.7 ];

然后,如果您对第1列和第2列进行排序,以便第一列具有最小值而第二列具有最大值,那么您可以使用unique来查找不重复的行:

Au = unique ( [ min(A(:,[1,2]),[],2) max(A(:,[1,2]),[],2) A(:,3) ], 'rows' );

Au = unique( [ sort( A(:,[1,2]), 2 ) A(:,3)], 'rows' );

结果:

128.00000   225.00000     0.90000
256.00000   857.00000     0.70000