【问题标题】:Matlab Finding Unique PermutationsMatlab 寻找唯一排列
【发布时间】:2013-10-06 11:59:02
【问题描述】:

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

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          

【问题讨论】:

    标签: matlab unique permutation


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多