delete rows of a matrix

조회 수: 1 (최근 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
dav
dav 2013년 3월 18일
Thank you very much!

댓글을 달려면 로그인하십시오.

추가 답변 (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