MATLAB Answers

How to delete rows from the bottom of matrix

1 view (last 30 days)
Hi everyone,
I have A = [1 2 3 4 5; 1 0 0 0 0; 1 2 3 4 5; 1 2 3 4 5; 1 0 0 0 0; 1 0 0 0 0 ]
I want to delete the rows that contain 0 in the bottom. Then I can’t use
condition=A == 0;
A(condition,:)=[];
as it will delete row 2 as well. I just want to remove the rows in the bottom until the rows start to contain numbers. The number of rows in the bottom can change.
Any ideas? Thanks!!

  1 Comment

Jan
Jan on 16 Sep 2013
The description is not clear. Does they mean, that you want to delete the last two rows only? All rows contain numbers, because 0 is a number also. And no row contains zeros only. Please edit the question and improve the description.

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 16 Sep 2013
out = A(flipud(cumsum(flipud(all(A,2)))>0),:);

  1 Comment

Betina Isbak
Betina Isbak on 16 Sep 2013
Thank you Andrei, it works perfect!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!