如何修改代码以仅获取排列的唯一值?
x = -1:1;
a = 1:length(x);
[a1,a2] = ndgrid(a);
y = x([a2(:) a1(:)]);
y unique y
-1 -1 -1 -1
-1 0 -1 0
-1 1 -1 1
0 -1 0 0
0 0 0 1
0 1 1 1
1 -1
1 0
1 1
答案 0 :(得分:1)
直接的方法可能是先对每对值进行排序然后应用unique
:
unique_y = unique(sort(y, 2), 'rows');
如果原始对中的值的顺序很重要,并且您希望确保sort
不引入“新”对,则可以按如下方式更改解决方案:
unique_y = unique(intersect(y, sort(y, 2), 'rows'), 'rows');