行列中の欠損値を,一番近い値で置換する関数。Bioinformatics toolbox がインストールされていないと使えない。
>> A=normrnd(3,1,5,5) % normrnd で平均 3,
標準偏差 1 の5 x 5 行列を作って試してみる。
A =
3.5377 1.6923 1.6501 2.7950 3.6715
4.8339 2.5664 6.0349 2.8759 1.7925
0.7412 3.3426 3.7254 4.4897 3.7172
3.8622 6.5784 2.9369 4.4090 4.6302
3.3188 5.7694 3.7147 4.4172 3.4889
>> A(A>4)=NaN % 4 以上の要素を,欠損値 NaN に置き換える。-> 行列の扱い
A =
3.5377 1.6923 1.6501 2.7950 3.6715
NaN 2.5664 NaN 2.8759 1.7925
0.7412 3.3426 3.7254 NaN 3.7172
3.8622 NaN 2.9369 NaN NaN
3.3188 NaN 3.7147 NaN 3.4889
>> B=knnimpute(A) % NaN が,行列中の数値で置き換えられる。
B =
3.5377 1.6923 1.6501 2.7950 3.6715
1.7925 2.5664 2.5664 2.8759 1.7925
0.7412 3.3426 3.7254 0.7412 3.7172
3.8622 2.9369 2.9369 3.8622 3.8622
3.3188 3.7147 3.7147 3.3188 3.4889