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 で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!