如何根据 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
。如果 2
或 5
出现在句子 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
我有一个[句子交叉词]矩阵如下。
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
。如果 2
或 5
出现在句子 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