3
我有一個矩陣A
,它是(243 x 5)。我想挑選矩陣的唯一行向量,但考慮到具有相同元素但排序不同的行向量應該被認爲是相同的。消除重複的向量,但元素的順序不同
例如,假設爲簡單起見,該A
矩陣是(10×5),並且等於:
A=[1 2 1 2 3
1 3 1 1 1
1 3 1 1 2
1 2 1 1 3
2 3 1 2 1
1 3 1 2 2
1 3 1 2 3
1 3 1 3 2
1 3 1 3 1
1 3 2 3 1]
在上面的例子中,行(1,5,6)將被認爲是等價它們具有相同的元素,但順序不同。另外,行(3和4)是等效的,行(7,8,10)也是等價的。
是否有任何方法可以編寫一個代碼來刪除所有「重複行」,即僅傳遞A行(1,2,3,7和9)的代碼?
到目前爲止我碰到這種解決方案:
B(:,1) = sum(A == 1,2);
B(:,2) = sum(A == 2,2);
B(:,3) = sum(A == 3,2);
[C, ia, ic] = unique(B,'rows');
Result = A(ia,:);
這也提供了我所期待的一個警告 - 它提供的唯一行根據上述定義的標準A,但它不是交付它找到的第一行。即而不是交付行(1,2,3,7,9)它交付行(7,1,9,3,2)。
無論如何,我可以強迫他以正確的順序傳遞行?還有更好的方法呢?