2015-04-25 4 views
1

У меня есть матрица [предложение перекрестных слов] следующим образом.как выбрать строки матрицы на основе появления элементов в 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 показывает слово отсутствует в соответствующем предложении, я сделал некоторую обработку и выбран 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. если было 2 или 5, присутствующее в предложении 3, оно должно быть выбрано, потому что более двух слов произошло в сдержанности.

ответ

3

Один подход, чтобы выбрать те действительные строки из x -

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

Вместо этого, если вы заинтересованы в получении только действительные показатели -

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

Sample прогонов -

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