在matlab中比较不同大小的字符串的单元格

时间:2015-02-24 08:27:49

标签: matlab

我想将包含来自文本文档中单个单词的字符串的[1 * 232]单元格与包含来自同一文本的单个句子的[1 * 23]单元格进行比较,任何人都可以帮助我如何在Matlab中对其进行编程? 例如: "污染"和"树"在单独的单元格中有两个单词 以下是单独单元格中的两个句子: 1.树木减少污染。 2.树木防止洪水。

我想要做的是在将污染和树木与两个句子或我的情况下比较后放0或1" n"句子并以矩阵的形式放置1和0。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用cellfunstrfind的组合。这是一个尝试:

Sentences = {'trees reduce pollution' ; ... 
    'trees prevent floods' ; ...
    'pollution is bad' ; ...
    'flood is worse'};

Words = {'trees', 'pollution', 'bad'};

Out = NaN(numel(Sentences), numel(Words));

for i = 1:numel(Words)
    Out(:,i) = cellfun(@(x) numel(strfind(x, Words{i})), Sentences);
end

Out包含:

Out =

     1     1     0
     1     0     0
     0     1     1
     0     0     0

希望这有帮助。