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

pro*_*sor 3 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
Run Code Online (Sandbox Code Playgroud)

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

idxcell{:,1}
temp = idxcell{:,1};
M = mode(temp)
Run Code Online (Sandbox Code Playgroud)

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


这是由angainor回答的: mode([idxcell{:}])


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


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


提前致谢.

ang*_*nor 8

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

mode([idxcell{:}])
ans =

13
Run Code Online (Sandbox Code Playgroud)

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

cellfun(@mode, idxcell)
ans =

 9    10    14    15    19    20    24    25
Run Code Online (Sandbox Code Playgroud)