Filter löschen
Filter löschen

Delete rows for specific elements from a matrix

1 Ansicht (letzte 30 Tage)
Lily
Lily am 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 Kommentar
Azzi Abdelmalek
Azzi Abdelmalek am 20 Sep. 2013
The problem is with for i = 1:length(f), because f(i,:) = [] will decrease the length of f

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 20 Sep. 2013
Bearbeitet: Azzi Abdelmalek am 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),:)

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by