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一下,大致就是将一个字符串以某一个标志分成两截,默认是空格。

这里统计的是一个字符串的单词数量,如果你要统计一个文件中单词的数量,只需要对文件的每一行使用这个函数,然后累加即可。

标签: matlab

相关文章推荐

添加新评论 (无需注册,可直接评论)