Определение количества вхождений каждого слова в массиве ячеек

У меня огромный вектор слов, и я хочу вектор только с уникальными словами и частотой для каждого слова. Я уже пробовала hist а также histc но они для числового значения. Я знаю функцию tabulate но это дает некоторые слова "(например, это превращается в" это "). Если у вас есть идеи, как это сделать, MATLAB было бы здорово. Спасибо

1 ответ

Решение

Вы были на правильном пути! Просто используйте unique сначала подготовить числовой ввод для hist, Хитрость в том, что идентификаторы вхождения слова возвращаются unique может быть использован как вход для hist функция, так что вы можете получить счет без явного for петли:

words = {'abba' 'bed' 'carrot' 'damage' 'bed'};
[unique_words, ~, occurrences] = unique(words);
unique_counts = hist(occurrences, 1:max(occurrences));

Это дает:

>> unique_words 
    'abba'    'bed'    'carrot'    'damage'

>> unique_counts
     1     2     1     1
Другие вопросы по тегам