Matlab:查找单元格中重复次数最多的值(修订版)

时间:2012-11-20 19:27:12

标签: matlab mode cell-array

对于我的代码,idxcell {:,1}进行1:10迭代会得到以下结果:

ans =
         9    10    14    15    19    20    24    25
    ans =
      Columns 1 through 13
         7     8    11    12    13    14    16    17    18    19    21    22    23
      Column 14
        24
    ans =
        13    14    15    18    19    20    23    24    25
    ans =
         6     7    11    12    16    17    21    22
    ans =
        16    17    21    22
    ans =
         6     7    11    12    13    16    17    21
    ans =
         4     5     8     9    10    13    14    15    19    20
    ans =
         4     5     8     9    10    14    15
    ans =
        11    12    13    14    16    17    18    19    21    22    23    24
    ans =
         1     2     3     6     7     8    11    12    13

我如何获得这些细胞元素的最重复值(我认为该范式是'14')?我不想要它的索引值。 我试过了

idxcell{:,1}
temp = idxcell{:,1};
M = mode(temp)

但只获得了第一个单元格的结果,我不确定mode()是我必须用于我的目的。


angainor mode([idxcell{:}])

回答了这个问题

修订:也可以一次搜索所有单元格数组/行,进行i次迭代,找到最重复的值并对结果进行排序,大多数重复到较少,在单元格数组内或矩阵按降序排列?


| angainor's提示之后由我回答:Sort = sort([idxcell{:}])


提前致谢。

1 个答案:

答案 0 :(得分:8)

如果我理解正确,您需要在调用mode之前将所有单元格向量连接成一个

mode([idxcell{:}])
ans =

13

如果您想获得所有单元格中最常出现的值,可以使用cellfun

cellfun(@mode, idxcell)
ans =

 9    10    14    15    19    20    24    25