remove rows from a matrix on a specific condition

106 vues (au cours des 30 derniers jours)
Dimitris
Dimitris le 1 Fév 2013
Commenté : Jona Gladines le 12 Oct 2020
I want to remove rows from a matrix when a specific condition is satisfied.
For example, lets as assume that I have the following 5x5 matrix :
A= [ 5 3 3 1 4
6 6 3 1 0
6 2 2 2 0
4 2 3 2 0
1 1 1 1 2 ]
and I want to delete the rows of this matrix when the elements of the 5th column are equal to 0, so I will be left with the first and last row as an outcome:
A= [ 5 3 3 1 4
1 1 1 1 2 ]
Thanks
  1 commentaire
Dimitris
Dimitris le 1 Fév 2013
Just to make clear there are ; for every 5 elements in the example to separate the rows, I hope it is clear, sorry about that

Connectez-vous pour commenter.

Réponse acceptée

Daniell Algar
Daniell Algar le 1 Fév 2013
Try
A= [ 5 3 3 1 4; 6 6 3 1 0; 6 2 2 2 0; 4 2 3 2 0; 1 1 1 1 2 ]
A(A(:, 5)== 0, :)= []
  3 commentaires
Raghu Vamsi
Raghu Vamsi le 9 Jan 2020
What if the 0 is not exactly in the 5th Column but random in cells, then how to solve the same issue?
Jona Gladines
Jona Gladines le 12 Oct 2020
@Raghu Vamsi, If still needed, repeat for every column. As it wil only remove the rows with a 0 in that specific column.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by