Borrar filtros
Borrar filtros

delete rows of a matrix

4 visualizaciones (últimos 30 días)
dav
dav el 18 de Mzo. de 2013
I have a vector
A = [ 1 0 2;
0 3 4;
3 5 0;
0 0 0;
1 1 1 ]
I need to delete the rows with ALL ELEMeTNS = 0 that means I want to get
B = [ 1 0 2;
0 3 4;
3 5 0;
1 1 1 ] form A.
Can someone please help me with this? I have to use this command inside a LOOP. So, I don't know in which row this could happen.
So, I need a code that finds and deletes the rows with all elements equal to zero.
Thanks.

Respuesta aceptada

Walter Roberson
Walter Roberson el 18 de Mzo. de 2013
~any(A(J,:)) when you are examining row J.
  1 comentario
dav
dav el 18 de Mzo. de 2013
Thank you very much!

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 18 de Mzo. de 2013
Once you graduate to the more MATLAB-ish, non-loop, vectorized way, you'd do it like this:
clc;
A = [ 1 0 2;
0 3 4;
3 5 0;
0 0 0;
1 1 1 ]
rowsToKeep = any(A,2)
B = A(rowsToKeep, :)
Why do you have to do it in a loop? Seems like a dumb requirement.
  2 comentarios
dav
dav el 18 de Mzo. de 2013
I have to employ this in a simulation program. thanks.
Image Analyst
Image Analyst el 19 de Mzo. de 2013
You can employ my code in a simulation program. Being in a simulation program is not a reason why it has to be a for loop. But whatever...it doesn't matter....

Iniciar sesión para comentar.

Categorías

Más información sobre MATLAB en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by