0

我将如何修改代码以仅获取排列的唯一值?

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          
4

1 回答 1

1

直截了当的方法可能是先对每对值进行排序,然后再应用unique

unique_y = unique(sort(y, 2), 'rows');

如果原始对中值的顺序很重要,并且您想确保sort不会引入“新”对,则可以按如下方式更改解决方案:

unique_y = unique(intersect(y, sort(y, 2), 'rows'), 'rows');
于 2013-10-06T12:11:20.923 回答