How to sort rows of matrix according ot its amount of Nan?

1 view (last 30 days)
The matrix is like this: Data =
1 2 NaN 4 NaN
4 NaN 2 NaN 2
7 1 5 NaN 4
9 4 3 7 NaN
row 1 = 2 NaNs, row 2 = 2 NaNs, row 3 = 1 NaN, row 4 = 1 NaN.
and it can be described like this: [2 2 1 1] what can i do if i want to make it like this:
Data =
7 1 5 NaN 4
9 4 3 7 NaN
1 2 NaN 4 NaN
4 NaN 2 NaN 2
row 1 = 1 NaN, row 2 = 1 NaN, row 3 = 2 NaNs, row 4 = 2 NaNs. and it can be described like this: [1 1 2 2]
what to do? thanks before :)

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 24 Apr 2012
[ii ii] = sort(sum(isnan(Data),2))
out = Data(ii,:)
  3 Comments
Isti
Isti on 7 May 2012
what can i do if i want to make a sort in descending way (actually the opponent sort of above)?
thanks before :)
Andrei Bobrov
Andrei Bobrov on 7 May 2012
[ii ii] = sort(sum(isnan(Data),2),'descend');
out = Data(ii,:)

Sign in to comment.

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!