如何根据 matlab 中元素的出现来 select 行矩阵?

how to select rows of a matrix on the basis of occurrence of elements in matlab?

我有一个[句子交叉词]矩阵如下。

x = [ 0 1 1 0 1
      1 1 1 0 0
      0 0 1 1 0
      1 1 0 1 1
      0 0 0 0 0 ];

0 表示相应句子中存在一个词,1 表示相应句子中不存在一个词,我做了一些处理并 selected word number 2,3 and 5 从列。 我要select在word 2,3 and 5的基础上,出现任意两个或两个以上词的那些句子(行),一个词在一个句子中单独出现不应考虑

例如,从上面的矩阵句子编号 1、2 和 4 应该 selected,因为 word 2,3 and 5 出现在它们中,而不应该考虑句子 number 3 and 5,因为在句子 3只有单词3单独出现,没有2 and 5。如果 25 出现在句子 3 中,它应该被 select 编辑,因为一个句子中同时出现了两个以上的单词。

select 来自 x -

的那些有效行的一种方法
x_valid = x(sum(x(:,[2 3 5]),2)>=2,:)

相反,如果您只想知道有效索引 -

idx = find(sum(x(:,[2 3 5]),2)>=2)

样本运行-

x =
     0     1     1     0     1
     1     1     1     0     0
     0     0     1     1     0
     1     1     0     1     1
     0     0     0     0     0
x_valid =
     0     1     1     0     1
     1     1     1     0     0
     1     1     0     1     1
idx =
     1
     2
     4