我有一个像这样的输入数组
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];
为了获得独特的组合,我以这种方式使用sort
和unique
函数的组合
unique(sort(all ,2),'rows');
问题在于获得每个组合的出现次数。我尝试以这种方式使用hist
函数
[a, b]= hist(all ,unique(sort(all ,2),'rows'));
但我得到了他的错误
使用histc时出错边缘向量必须单调递减。
hist中的错误(第121行) nn = histc(y,edgesc,1);
有人可以帮助我获得所需的输出吗?
由于
答案 0 :(得分:2)
在这种情况下,您不希望使用完整行。使用索引更容易。 unique
已经为您转换为索引。
[output1,b,c]=unique(sort(all ,2),'rows')
output2=hist(c,1:numel(b))