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 :')

 採用された回答

Rick Rosson
Rick Rosson 2012 年 4 月 21 日
n = sum(isnan(A));

1 件のコメント

Isti
Isti 2012 年 4 月 21 日
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?

サインインしてコメントする。

その他の回答 (1 件)

Rick Rosson
Rick Rosson 2012 年 4 月 21 日
n = sum(isnan(A));
B = transpose([ n ; A ]);
C = sortrows(B);
R = transpose(C(:,2:end));

1 件のコメント

Isti
Isti 2012 年 4 月 21 日
it works. thank you very much for your help :)

サインインしてコメントする。

カテゴリ

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by