How to sort the column of matrix according to amount of NaN for each column?

In simple case, I have the matrix like this:
NaN 1 4 6 NaN
9 NaN 6 1 2
NaN 3 2 8 3
7 NaN 1 9 3
7 1 8 2 4
and from the matrix we can see the amount of the NaNs: column 1= 2, column 2= 2, column 3= 0, column 4= 0, column 5= 1,
so i want to sort the columns in the matrix according to their NaNs and become like this:
4 6 NaN NaN 1
6 1 2 9 NaN
2 8 3 NaN 3
1 9 3 7 NaN
8 2 4 7 1
May somebody help me with the code? Thanks before :')

 Accepted Answer

n = sum(isnan(A));

1 Comment

Thanks for this helping answer. it's produce the amount of the NaN from each column.
And i still have the problem with exchange the column according to that amount.
Is there any code to sort the columns?

Sign in to comment.

More Answers (1)

n = sum(isnan(A));
B = transpose([ n ; A ]);
C = sortrows(B);
R = transpose(C(:,2:end));

Categories

Asked:

on 21 Apr 2012

Community Treasure Hunt

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

Start Hunting!