Effacer les filtres
Effacer les filtres

delete rows of a matrix

4 vues (au cours des 30 derniers jours)
dav
dav le 18 Mar 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.

Réponse acceptée

Walter Roberson
Walter Roberson le 18 Mar 2013
~any(A(J,:)) when you are examining row J.
  1 commentaire
dav
dav le 18 Mar 2013
Thank you very much!

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 18 Mar 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 commentaires
dav
dav le 18 Mar 2013
I have to employ this in a simulation program. thanks.
Image Analyst
Image Analyst le 19 Mar 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....

Connectez-vous pour commenter.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by