2012-02-15 56 views

回答

1

你可以先排序行,然後排除NaN的

sorted_row = sorted_row(~isnan(sorted_row)); 

這將從排序行中刪除所有的NaN。

更好的是,爲了節省計算量,您應該在排序前排除NaN。

sorted_row = sort(row(~isnan(row))); 
+0

非常感謝! – user1205030 2012-02-15 16:58:25

+2

我不相信'row〜= NaN'按預期工作。例如'x = [1 2 NaN]; x(x〜= NaN)'將返回'x = 1 2 NaN'。你必須使用'x(〜isnan(x))' – 2012-02-15 18:07:03

+0

@AeroEngy你是對的。我糾正了它。 – Phonon 2012-02-15 18:13:08

1

嘗試使用後的排序: sorted_row(~isnan(sorted_row))

1

如果你只需要選擇您可以使用QUANTILEPRCTILE功能從統計工具箱(沒有那種需要)前10%的人數最多:

x_largest = x(x >= quantile(x, 0.9)); 

x_largest = x(x >= prctile(x, 90)); 

這些函數不考慮NaN。

+0

好!!謝謝! – user1205030 2012-02-15 19:16:24