как выделить строки матрицы на основании вхождения элементов в матлаб?

У меня есть матрица [перекрестных слов предложения], как показано ниже.

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 присутствовало 2 или 5, его следует выбрать, потому что более двух слов встречаются вместе в предложении.


person Afzaal Ahmad    schedule 25.04.2015    source источник


Ответы (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
person Divakar    schedule 25.04.2015