0
我有一张4850626行和三列中的4850626行2425313是重复的表。该表看起来是这样的如何删除matlab中的重复边缘
node1 node2 score
225 128 0.9
256 857 0.7
128 225 0.9
857 256 0.7
. . .
. . .
我怎么能删除这个大表的副本?
我有一张4850626行和三列中的4850626行2425313是重复的表。该表看起来是这样的如何删除matlab中的重复边缘
node1 node2 score
225 128 0.9
256 857 0.7
128 225 0.9
857 256 0.7
. . .
. . .
我怎么能删除这个大表的副本?
一个非常简单的方法是是这样的:
如果你的矩阵是A
,然后Au = unique(A, 'rows');
将返回从A
内含有唯一行矩阵Au
。
与开始:
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