用matlab编写给定一个文本文件,统计其中每个单词出现的次数,并按照出现次数从大到小输出前 N 个单词及其出现次数。
时间: 2023-12-09 08:03:58 浏览: 65
好的,我可以帮您解决这个问题。以下是实现该功能的 Matlab 代码:
```matlab
% 读取文本文件
fileID = fopen('filename.txt','r');
text = fscanf(fileID,'%s');
fclose(fileID);
% 将文本转换为小写,并去除标点符号
text = lower(text);
text = regexprep(text,'[^\w\s'']','');
% 将文本分割成单词
words = strsplit(text);
% 统计每个单词出现的次数
uniqueWords = unique(words);
counts = zeros(length(uniqueWords),1);
for i = 1:length(uniqueWords)
counts(i) = sum(strcmp(words,uniqueWords{i}));
end
% 按照出现次数从大到小排序
[sortedCounts,idx] = sort(counts,'descend');
sortedWords = uniqueWords(idx);
% 输出前 N 个单词及其出现次数
N = 10; % 修改此处以输出不同数量的单词
for i = 1:N
fprintf('%s: %d\n',sortedWords{i},sortedCounts(i));
end
```
其中,`filename.txt` 是待读取的文本文件名,`N` 是需要输出的单词数量。该程序会将文本转换为小写,并去除标点符号,然后统计每个单词出现的次数,并按照出现次数从大到小排序,最后输出前 N 个单词及其出现次数。
阅读全文