Delete rows for specific elements from a matrix

14 Ansichten (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)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by