This question already has answers here:

Determining the number of occurrences of each unique element in a vector
(4个答案)
我有这样的向量
1
2
2
2
3
3
3
3
.
.
.

我想知道的是,在多少行中,每个数字都是这样出现的
1 1
2 3
3 4
. .
. .

我可以循环遍历每个元素并使用
index = find(vector == element)
length(index)

但这是非常低效的在matlab中最有效的方法是什么?

最佳答案

histc的文档中:
bincounts=histc(x,binranges)统计x中
在每个指定的箱子范围内。
如果您将histcunique结合起来,您可以得到您想要的:

a =
     4
     2
     3
     3
     1
     2
     1
     1
     2
     3

uni = unique(a);
[uni, histc(a,uni)]
ans =
     1     3
     2     3
     3     3
     4     1

10-01 13:34