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);
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值