web-dev-qa-db-fra.com

Sélection d'un nombre spécifique de lignes remplissant une condition

J'ai actuellement commencé à travailler avec l'octave pour certaines analyses de données et j'ai des problèmes pour une manipulation de matrice spécifique.

Supposons que vous ayez la matrice de données suivante:

 
 A = 
 
 1 11 22 33 
 44 13 12 33 
 1 14 33 44 
 

Maintenant, je voudrais supprimer toutes les lignes de cette matrice qui n'accomplissent pas par exemple la condition suivante.

 
 octave: 6> A (:, 4) == 33 
 ans = 
 
 1 
 1 
 0 
 

Et je vais obtenir la matrice de ce formulaire qui ne sélectionne que ces lignes:

 
 A_new = 
 
 1 11 22 33 
 44 13 12 33 
 

Je sais que cela est possible à l'aide de quelques boucles. Mais y a-t-il peut-être une solution plus propre, par exemple en utilisant la bibliothèque standard fournie? Ce serait génial :]

Une question similaire a également été publiée pour R: Dans R, sélectionnez les lignes d'une matrice qui remplissent une condition

35
Ruun

Essayer:

A = [
    1   11   22   33
    44  13   12   33
    1   14   33   44
];
idx = ( A(:,4)==33 );
A_new = A(idx,:)

Cela utilise indexation logique

56
Amro