Matlab中多个文件中的独特单词

时间:2014-01-05 10:56:42

标签: matlab

我使用独特的功能在单个文件中计算了唯一的单词及其频率。

fid = fopen(filename);

words = textscan(fid, '%s');

status = fclose(fid);

unique_words = unique(words{1,1}); 

frequencies = zeros(numel(unique_words), 1);

for i = 1:numel(unique_words)
if max(unique_words{i} ~= ' ')
    for j = 1:numel(words{1,1})
        if strcmp(words{1,1}(j), unique_words{i})
            frequencies(i) = frequencies(i) + 1;                      
        end
    end
end
end

任何人都可以告诉我,如何为多个文件执行此操作?我的意思是如果我有四个文件?而且,在我在单个文件中列出了唯一单词列表后,如何通过Matlab代码检查每个文件中出现多少次单词?

由于

1 个答案:

答案 0 :(得分:2)

你可以这样做:

function [frequencies] = calc_unique_words(filename)
fid = fopen(filename);

words = textscan(fid, '%s');

status = fclose(fid);

unique_words = unique(words{1,1}); 

frequencies = zeros(numel(unique_words), 1);

for i = 1:numel(unique_words)
if max(unique_words{i} ~= ' ')
    for j = 1:numel(words{1,1})
        if strcmp(words{1,1}(j), unique_words{i})
            frequencies(i) = frequencies(i) + 1;                      
        end
    end
end
end

然后在另一个文件中,说“main.m”执行此操作: 确保您的文件名列在第一行:

fileNames = {'f1.txt' , 'file2.bcd', 'filename3.txt','theLastFilename.csv'}
for ii = 1:numel(fileNames)
    freq_cell{ii} = calc_unique_words(fileNames{ii});
end