数组的独特组合和matlab中出现的数量

时间:2016-06-02 10:54:17

标签: arrays matlab

我有一个像这样的输入数组

all = [0 0;0 3;6 6;6 0;13 0;12 12;3 0;0 6;6 6];

我需要找到每一行的唯一组合以及这种组合发生的次数,例如。

output1 = [0 0;0 3;0 6;0 13;6 6;12 12];
output2 = [1;2;2;1;2;1];

为了获得独特的组合,我以这种方式使用sortunique函数的组合

unique(sort(all ,2),'rows');

问题在于获得每个组合的出现次数。我尝试以这种方式使用hist函数

[a, b]= hist(all ,unique(sort(all ,2),'rows'));

但我得到了他的错误

  

使用histc时出错边缘向量必须单调递减。

     

hist中的错误(第121行)       nn = histc(y,edgesc,1);

有人可以帮助我获得所需的输出吗?

由于

1 个答案:

答案 0 :(得分:2)

在这种情况下,您不希望使用完整行。使用索引更容易。 unique已经为您转换为索引。

[output1,b,c]=unique(sort(all ,2),'rows')
output2=hist(c,1:numel(b))