如何用matlab从一列数据中找出重复次数最多的数据?

需要找出一列数据中重复次数最多的数据以及重复次数,用matlab如何实现?求高人指教!

你用for 循环嵌套if....end 去读这一组数据中的每一个,每读一个数据,针对这个数据做一次计数,下面接着读,如果有和前面读的数据相等的,那么再在前面的计数变量上加1,以此类推直到把所有的数据读完!
然后你根据各个不同计数变量的大小以及对应的数据,就可以直到那个重复的最多追问

有简单一点的方法吗?这种我用C语言实现过,感觉不是很好,而且你每次统计过一个数之后就得把这个数据剔除否则容易重复计数

追答

应该没有其他方法了,编程序这个东西,虽然技巧很多,但是这个问题一看就很明朗,所以应该没有更简单的方法了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-29

 tabulate函数

用于统计矩阵中各元素出现的次数

>> x = [2  2  6  5  2  3  2  4  3  4  3  4  4  4  4  2  2
      6  0  4  7  2  5  8  3  1  3  2  5  3  6  2  3  5
      4  3  1  4  2  2  2  3  1  5  2  6  3  4  1  2  5];
>> tabulate(x(:))
  Value    Count   Percent
      0        1      1.96%
      1        4      7.84%
      2       14     27.45%
      3       10     19.61%
      4       10     19.61%
      5        6     11.76%
      6        4      7.84%
      7        1      1.96%
      8        1      1.96%

追问

用tabulate函数容易出现很多无关的变量的概率,他只能取一个区间来统计。
X = unique(B);
[M N]=hist(B,X);
maxcount = max(M);这样用hist实现挺好的,这是我后来找到的

本回答被提问者和网友采纳
第2个回答  2015-11-22
运用tabulate函树,输入以下矩阵即可
>> x = [2 2 6 5 2 3 2 4 3 4 3 4 4 4 4 2 2
6 0 4 7 2 5 8 3 1 3 2 5 3 6 2 3 5
4 3 1 4 2 2 2 3 1 5 2 6 3 4 1 2 5];
>> tabulate(x(:))
Value Count Percent
0 1 1.96%
1 4 7.84%
2 14 27.45%
3 10 19.61%
4 10 19.61%
5 6 11.76%
6 4 7.84%
7 1 1.96%
8 1 1.96%
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB应用非常之广泛。
第3个回答  2015-12-05
a=[1,3,3,5,5,6,2,6,9,9];
b=unique(a);
c=histc(a,b);