给出
A=1 1 0
1 2 0.563826213141399
1 3 1.18321595677734
1 4 1.95685972913029
2 1 0.563826213141399
2 2 0
2 3 0.830602192143995
2 4 1.65196852337589
2 5 1.77172232586001
3 1 1.18321595677734
3 2 0.830602192143995
3 3 0
3 4 0.821522975656861
3 5 1.12716458303105
3 6 1.78117938413852
如第2行和第5行所示,实际上相同但不在矩阵中。如何删除其中一行?
使用unique
我无法做到这一点。
答案 0 :(得分:0)
您似乎使用加权邻接矩阵表示图形 如果我理解正确,你希望每条边有一个条目。
您可以通过仅采用邻接矩阵的上三角
来完成此操作A = sparse( A(:,1), A(:,2), A(:,3), max(A(:,2)), max(A(:,2)) );
[ii jj wij] = find( triu( A ) ) ;
disp( [ii jj wij] )
输出:
1 2 0.563826
1 3 1.183216
2 3 0.830602
1 4 1.956860
2 4 1.651969
3 4 0.821523
2 5 1.771722
3 5 1.127165
3 6 1.781179