Remove zeros from matrix and order by each row

Hi,
I have a matrix like this
A=[1 0 0;
1 0 0;
0 2 0;
0 2 0;
0 0 3;
0 0 3;
1 0 0;
1 0 0;
0 2 0;
0 2 0;
0 0 3;
0 0 3]
I want the output to look like this A_Final = [1;1;2;2;3;3;1;1;2;2;3;3].
I used nonzeros, but the output is like this, [1,1,1,1,2,2,2,2,3,3,3,3], not what I wanted, help!
Thanks!

 Accepted Answer

Adam
Adam on 15 Sep 2014
Edited: Adam on 15 Sep 2014
A_Final = sum( A, 2 )

4 Comments

I like this one, except it's missing a sort.
sort(sum(A,2));
You don't want the sort. If you want them sorted then you'd just use nonzeros like Ruohui did originally.
Oh Sorry! I should have read his question more carefully!

Sign in to comment.

More Answers (1)

A possible way:
sortedA = sort(A, 2);
A_Final = A(:, 3);

Categories

Tags

Asked:

on 15 Sep 2014

Edited:

on 15 Sep 2014

Community Treasure Hunt

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

Start Hunting!