使用MATLAB计算数组上的出现次数

时间:2011-10-26 18:15:15

标签: arrays matlab

  

可能重复:
  Determining the number of occurrences of each unique element in a vector

我有以下数组:

v = [ 1 5 1 6 7 1 5 5 1 1]

我需要计算值并显示具有更多外观的数字。
从顶部的例子来看,解决方案是1(有5个1)

提前致谢

3 个答案:

答案 0 :(得分:10)

使用mode

如果您还需要返回元素数量,请执行以下操作:

m = mode(v);
n = sum(v==m);
fprintf('%d appears %d times\n',m,n);

答案 1 :(得分:9)

另一种方法是使用hist函数,如果你正在处理整数。

numbers=unique(v);       %#provides sorted unique list of elements
count=hist(v,numbers);   %#provides a count of each element's occurrence

只需确保为hist函数指定输出值,否则最终会得到条形图。

答案 2 :(得分:1)

@Jacob是对的:mode(v)会为您提供所需的答案。

我只想添加一种很好的方式来表示每个值的频率:

bar(accumarray(v', 1))

将显示一个漂亮的条形图,其中包含v中每个值的计数。