我有一个4850626行的表,4850626行2425313中的三列是重复的。该表将如下所示
node1 node2 score
225 128 0.9
256 857 0.7
128 225 0.9
857 256 0.7
. . .
. . .
如何从这张大表中删除副本?
答案 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