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)。
无论如何,我可以强迫他以正确的顺序传递行?还有更好的方法呢?