cut of zeros from a matrix based on the longest non-zero row
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi all,
I want to cut all zeros from the right, based on "the longest non zero row". an example:
A=[ 1 2 0 0 0 0;3 4 5 0 0 0;5 6 0 0 0 0];
output: A=[ 1 2 0 ;3 4 5 ;5 6 0 ];
thanks in advance!
댓글 수: 1
채택된 답변
Dave B
2021년 11월 22일
편집: Dave B
2021년 11월 22일
Another way to phrase this question is to say you want to remove columns from the right side of the matrix if the whole column is zeros:
A=[ 1 2 0 0 0 0;3 4 5 0 0 0;5 6 0 0 0 0];
lastnonzero=find(any(A~=0,1),1,'last') % the last column with a non-zero row
A(:,lastnonzero+1:end)=[]
댓글 수: 3
Net Fre
2021년 11월 22일
OK, much better than mine :)
Didn't know about any. Notice that your code will ingore non-zero negatives.
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!