コードの一部に k 最近傍関数を実装しようとしています。理解できない奇妙な問題に直面しています。させて
X=[1,4,51,3,2,4,6]' % a column vector
knnsearch(X,8) %returns 7!
私はこれをテストしましたが、通常 knnsearch(X,Y) は、 Xの最近傍である Y の特定の要素に対して返されます。もちろん、'7' は X の要素ではありませんが、knnsearch(X,8) は 7 を返しています。
コードの一部に k 最近傍関数を実装しようとしています。理解できない奇妙な問題に直面しています。させて
X=[1,4,51,3,2,4,6]' % a column vector
knnsearch(X,8) %returns 7!
私はこれをテストしましたが、通常 knnsearch(X,Y) は、 Xの最近傍である Y の特定の要素に対して返されます。もちろん、'7' は X の要素ではありませんが、knnsearch(X,8) は 7 を返しています。
要素自体ではなく、インデックスを返します。
>> X = [1, 12, 33, 14]';
>> nn = knnsearch(X, 8);
>> X(nn) %Will print 12
nn
インデックスを保持します (この場合は です2
)。
これX(nn)
は12
予想される答えです。
ドキュメントから:
IDX = knnsearch(NS,Y)
[...]
IDX is a column vector with ny rows, where ny is the number of rows in Y.
Each row in IDX contains the index of observation in NS.X which has the
smallest distance to the corresponding observation in Y.
knnsearch
最近傍を返すのではなく、最近傍のインデックスを返します。あなたの例で6
は、 は に最も近い要素8
であり、それは index7
にあるので、 を取得します7
。