Matlab找出数组中出现次数最多的值

我想统计一个数组(尤其是多维数组)中出现次数最多的值,在网上找到了如下几种方法:

  1. 使用"mode"函数 官方文档之mode函数
M = mode(A) 
返回 A 的样本众数,即 A 中出现次数最多的值。
如果有多个值以相同的次数出现,mode 将返回其中最小的值。
对复杂的输入,最小值是排序列表的第一个值。

M = mode(A, 'all')
计算 A 的所有元素的众数

M = mode(A,dim)
以一个二维输入数组 A 为例。
如果 dim = 1,则 mode(A,1) 返回包含每一列中出现次数最多元素的行向量。
如果 dim = 2,则 mode(A,2) 返回包含每一列中出现次数最多元素的列向量。


[M,F,C] = mode(  )
M:出现次数最多的值
F:频率数组
C:出现次数最多的多个值
  1. 使用"tabulate"函数 官方文档之tabulate函数
T = tabulate(X); T中第一列为元素值,第二列为相应元素出现个数,第三列是相应元素在所有元素中的占比
[maxCount,index] = max(T(:,2)); 
M = T(index);
  1. 使用“histogram”函数 官方文档之histogram函数
    (官方文档之unique函数)
U = unique(X); unique这个函数可以统计数组中出现的所有值
H = histogram(X);
count = H.Values;
index = max(count);
M = U(index);

你可能感兴趣的:(Matlab使用小技巧,matlab)