元胞数组中出现频率最高的字符串,不考虑字母顺序
Most frequent string in cell array without respecting the alphabetical order
我想在元胞数组中找到最常见的字符串,但不考虑字母顺序。
让我用一个例子更好地解释。
如果我有这个:
list = {'car', 'glasses', 'glasses', 'apple', 'apple'};
我希望答案是 glasses 而不是 apple 因为 glasses 在 apple 在数组中,即使 apple 按字母顺序小于 glasses.
此方法有效,但 returns 苹果:
[unique_strings, ~, string_map] = unique(list);
mostComm = unique_strings(mode(string_map)); % -> apple
使用'stable'
option with unique
保持顺序-
[unique_strings, ~, string_map] = unique(list,'stable');
unique_strings(mode(string_map))
来自文档:
[C,ia,ic] = unique(A,setOrder) and [C,ia,ic] =
unique(A,'rows',setOrder) return C in a specific order. setOrder can
be 'sorted' or 'stable':
'stable' — C is in the same order as A.
样本运行-
>> list
list =
'car' 'glasses' 'glasses' 'apple' 'apple'
>> [unique_strings, ~, string_map] = unique(list,'stable');
>> unique_strings(mode(string_map))
ans =
'glasses'
我想在元胞数组中找到最常见的字符串,但不考虑字母顺序。 让我用一个例子更好地解释。
如果我有这个:
list = {'car', 'glasses', 'glasses', 'apple', 'apple'};
我希望答案是 glasses 而不是 apple 因为 glasses 在 apple 在数组中,即使 apple 按字母顺序小于 glasses.
此方法有效,但 returns 苹果:
[unique_strings, ~, string_map] = unique(list);
mostComm = unique_strings(mode(string_map)); % -> apple
使用'stable'
option with unique
保持顺序-
[unique_strings, ~, string_map] = unique(list,'stable');
unique_strings(mode(string_map))
来自文档:
[C,ia,ic] = unique(A,setOrder) and [C,ia,ic] = unique(A,'rows',setOrder) return C in a specific order. setOrder can be 'sorted' or 'stable':
'stable' — C is in the same order as A.
样本运行-
>> list
list =
'car' 'glasses' 'glasses' 'apple' 'apple'
>> [unique_strings, ~, string_map] = unique(list,'stable');
>> unique_strings(mode(string_map))
ans =
'glasses'