我从文本文件中提取了23个句子,这些句子被分割并在单独的行中显示,每个句子按升序给出一个数字{1,2,3,...},我使用的代码如下:
sentences = regexp(F,'\S.*?[\.\!\?]','match')
char(sentences)
现在我做了一些处理并得到了过滤后的答案,其中显示了句子的子集,如下所示:
result = 1 4 5 9 11 14 16 17
我用于结果的代码如下:
result = unique([OccursTogether{:}]);
display(result)
现在我要做的是显示结果变量中不存在的句子,例如我需要的结果如下:
result2 = 2 3 6 7 8 10 12 13 15 18 19 20 21 22 23
记住句子是[1 * N]单元格,其结果是简单的数组保存整数。
答案 0 :(得分:0)
您正在寻找的功能是setdiff:
%// Create an array containing the indices of all the sentences
AllSentences = 1:23;
%// Indices of sentences present
result = [1 4 5 9 11 14 16 17]
%// And not present
NotPresent = setdiff(AllSentences,result)
NotPresent =
Columns 1 through 13
2 3 6 7 8 10 12 13 15 18 19 20 21
Columns 14 through 15
22 23
我不确定什么是单元格数组,什么不是,但对于单元格数组,您可以使用cell2mat
将它们转换为数字数组并应用相同的方法。
例如:
AllSentences = {1:23};
NotPresent = setdiff(cell2mat(AllSentences),result)