delete rows of a matrix

3 次查看(过去 30 天)
dav
dav 2013-3-18
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.

采纳的回答

Walter Roberson
Walter Roberson 2013-3-18
~any(A(J,:)) when you are examining row J.

更多回答(1 个)

Image Analyst
Image Analyst 2013-3-18
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 个评论
dav
dav 2013-3-18
I have to employ this in a simulation program. thanks.
Image Analyst
Image Analyst 2013-3-19
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....

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Quantum Mechanics 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by