Effacer les filtres
Effacer les filtres

Delete rows for specific elements from a matrix

1 vue (au cours des 30 derniers jours)
Lily
Lily le 20 Sep 2013
Hi
I'm trying to delete all rows if the second and third element is equal to zero. My if-else sentence doesn't work. Could you help me?
f = [2 5 4 3 2; 4 9 2 1 9; 2 0 0 0 0; 4 0 0 0 3; 9 7 12 14 42];
for i = 1:length(f)
if (f(i,2) == 0) && (f(i,3) == 0)
f(i,:) = [];
end
end
A = f; % Want the final result of A to look like this: A = [2 5 4 3 2; 4 9 2 1 9; 9 7 12 14 42]
  1 commentaire
Azzi Abdelmalek
Azzi Abdelmalek le 20 Sep 2013
The problem is with for i = 1:length(f), because f(i,:) = [] will decrease the length of f

Connectez-vous pour commenter.

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 20 Sep 2013
Modifié(e) : Azzi Abdelmalek le 20 Sep 2013
f = [2 5 4 3 2; 4 9 2 1 9; 2 0 0 0 0; 4 0 0 0 3; 9 7 12 14 42];
f(all(~f(:,2:3),2),:)=[]
%or
f=f(any(f(:,2:3),2),:)
  1 commentaire
Lily
Lily le 20 Sep 2013
Really nice!! Thank you :)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by