Matlab 单元格数组中不考虑字母顺序的最频繁字符串

Matlab 单元格数组中不考虑字母顺序的最频繁字符串,matlab,cell-array,mode,Matlab,Cell Array,Mode,我想在单元格数组中查找最常见的字符串,但不考虑字母顺序。 让我用一个例子更好地解释一下 如果我有这个: list = {'car', 'glasses', 'glasses', 'apple', 'apple'}; 我希望答案是眼镜而不是苹果,因为眼镜在数组中位于苹果之前,即使苹果的字母顺序小于眼镜 此方法有效,但返回apple: [unique_strings, ~, string_map] = unique(list); mostComm = unique_strings(mode(str

我想在单元格数组中查找最常见的字符串,但不考虑字母顺序。 让我用一个例子更好地解释一下

如果我有这个:

list = {'car', 'glasses', 'glasses', 'apple', 'apple'};
我希望答案是眼镜而不是苹果,因为眼镜在数组中位于苹果之前,即使苹果的字母顺序小于眼镜

此方法有效,但返回apple:

[unique_strings, ~, string_map] = unique(list);
mostComm = unique_strings(mode(string_map)); % -> apple
用来维持秩序-

[unique_strings, ~, string_map] = unique(list,'stable');
unique_strings(mode(string_map))
从文档:

[C,ia,ic]=唯一(A,setOrder)和[C,ia,ic]= unique(A,'rows',setOrder)按特定顺序返回C。定购罐 “分类”或“稳定”:

“稳定”-C与A的顺序相同

样本运行-

>> list
list = 
    'car'    'glasses'    'glasses'    'apple'    'apple'
>> [unique_strings, ~, string_map] = unique(list,'stable');
>> unique_strings(mode(string_map))
ans = 
    'glasses'