大多数重复的值

时间:2013-04-27 00:47:34

标签: matlab neighbours

我知道如何检查8-neighbourhood中的matlab(即; nlfilter)。但是,我想将更重复的值分配给中心值。所以,比方说我在8邻域中有以下值:

2-values = 56

3值= 64

1值= 70

1值= 87

1值= 65

在这种情况下,我们会将64指定给中心像素。

我们怎么能这样做?

感谢。

1 个答案:

答案 0 :(得分:2)

我认为您需要modehistc功能。

  

M =向量X的模式(X)计算M作为样本模式,或大多数   经常       X中出现的值。

您的数据示例:

x = [56 56 64 64 64 70 87 65];
mode(x)

ans =

64

但这只会让你获得最常见的价值。

如果你想要数组中每个唯一项的计数,你可以这样做,

unqx = unique(x);

unqx =

56    64    65    70    87

valueCount = histc(x, unqx)

ans =

 2     3     1     1     1

然后,您可以对此进行排序并获取第一个N

valueCount = sort(valueCount, 'descend');
% Use unqx(valueCount(1:N))