Matlab - 数组中的大多数重复值(不仅仅是模式)

use*_*272 4 arrays matlab

我有一个数字范围从1到4的数组.我需要知道哪些是重复更多的值.如果有平局我需要知道哪些是值,所以我可以进行一些操作.

例:

a = [1 1 1 2 2 2 3 4]
Output = [1 2]

a = [1 1 1 2 3 4]
Output = 1

a = [1 2 2 3 3 4 4]
Output = [2 3 4]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

San*_*lai 5

使用hist和的替代矢量化方法unique

uVal = unique(a);
counts = hist(a,uVal);
out = uVal(counts == max(counts));
Run Code Online (Sandbox Code Playgroud)

结果:

a = [1 1 1 2 2 2 3 4];

>> out

out =

 1     2
Run Code Online (Sandbox Code Playgroud)