1. 程式人生 > >如何去除矩陣中的NaN元素

如何去除矩陣中的NaN元素

將NaN轉化為數字或去掉

>>a(isnan(a)) = []
a = 2    3     3     5
以下是幾種方法:

注:判斷一個值是否為NaN,只能用 isnan(),而不可用 x==NaN; 
(1)i = find( ~ isnan(x));

x = x(i)先找出值不是NaN的項的下標,將這些元素保留

(2)x = x(find( ~ isnan(x)))同上,去掉NaN

(3)x = x( ~ isnan(x));更快的做法

(4)x(isnan(x)) = [];消掉NaN

(5)x(any(isnan(X)’),:) = [];把含有NaN的行都去掉
例如:

>>a=[2 3 nan 3 5 nan]

a(isnan(a))