在matlab中有效地找到向量中的索引

时间:2014-02-14 19:48:01

标签: algorithm matlab

我有这样的矢量

1
2
2
2
3
3
3
3
.
.
.

我想知道的是单个数字出现的行数是多少行

1 1
2 3
3 4
. .
. .

我可以遍历每个元素并使用

index = find(vector == element)
length(index)

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

1 个答案:

答案 0 :(得分:1)

来自histc的文档:

  

bincounts = histc(x,binranges)计算x中的值的数量   在每个指定的bin范围内。

如果您将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