Delete rows for specific elements from a matrix

13 visualizaciones (últimos 30 días)
Lily
Lily el 20 de Sept. de 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 comentario
Azzi Abdelmalek
Azzi Abdelmalek el 20 de Sept. de 2013
The problem is with for i = 1:length(f), because f(i,:) = [] will decrease the length of f

Iniciar sesión para comentar.

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 20 de Sept. de 2013
Editada: Azzi Abdelmalek el 20 de Sept. de 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),:)

Más respuestas (0)

Categorías

Más información sobre Shifting and Sorting Matrices en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by