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'