delete rows of a matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
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.
0 comentarios
Respuesta aceptada
Más respuestas (1)
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
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....
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!