MATLAB代码统计字符串中单词数量
这是一个经常会用到的功能,尤其是在进行文本分析时。
如果这些单词本身是数字,是很容易做到的:使用str2num函数将字符串转换为数值数组,数组的大小就是单词的数量了。
但对于字符型的单词,上面就搞不定了。网上有不少代码,但大多数都不健壮,对于两个单词之间有多个空格便会失效。下面的算法是参考网上的一个例子写的,初步测试非常健壮。
function [counter] = count_words(string) % counter the number of words in a string % % Email: xianbao.d # gmail.com % Website: http://www.52souji.net/ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % log: % 2012-12-19: Complete %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % remove whitespace from the front and rear of string string = strtrim(string); % count words counter = 0; while ~isempty(string) [~, string] = strtok(string); counter = counter + 1; end
这里主要是用到了strtok函数,具体你可以help一下,大致就是将一个字符串以某一个标志分成两截,默认是空格。
这里统计的是一个字符串的单词数量,如果你要统计一个文件中单词的数量,只需要对文件的每一行使用这个函数,然后累加即可。