Мне нужно подсчитать, как часто определенная строка содержится в массиве ячеек. Проблема в том, что код - это способ замедления, для этого требуется почти 1 секунда.Оптимизация количества вхождений строки
uniqueWordsSize = 6; % just a sample number
wordsCounter = zeros(uniqueWordsSize, 1);
uniqueWords = unique(words); % words is a cell-array
for i = 1:uniqueWordsSize
wordsCounter(i) = sum(strcmp(uniqueWords(i), words));
end
То, что я сейчас делаю, чтобы сравнить каждое слово в uniqueWords с клеточно-массив слов и использовать сумму для того, чтобы вычислить сумму массива, который получает возвращенного STRCMP.
Я надеюсь, что кто-то может помочь мне оптимизировать это .... 1 секунда для 6 слов - это слишком много.
EDIT: ismember еще медленнее.
Кажется, ответ на @Jonas является то, что вы хотите (блестящее решение кстати). Но только потому, что мне любопытно: Сколько слов у вас в массиве ячеек 'words'? Если их много (я бы сказал, по крайней мере, +5000), это может объяснить задержку в 1 секунду. –
uniquewords может быть около 100, а слова около 500-800 зависят от ввода. –