【问题标题】:how to select rows of a matrix on the basis of occurrence of elements in matlab?如何根据matlab中元素的出现选择矩阵的行?
【发布时间】:2015-04-25 07:12:17
【问题描述】:

我有一个 [sentence cross words] 矩阵如下。

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 显示一个词出现在相应的句子中,我已经做了一些处理并从列中选择了word number 2,3 and 5。 我想在word 2,3 and 5的基础上选择那些出现任何两个或两个以上单词的句子(行),不应考虑句子中单词的单一出现

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

【问题讨论】:

    标签: matlab matrix row matrix-indexing


    【解决方案1】:

    一种从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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-03-06
      相关资源
      最近更新 更多