簡體   English   中英

knnsearch(X,Y)沒有返回X的元素

[英]knnsearch(X,Y) not returning an element of X

我試圖在我的一些代碼中實現k近鄰函數。 我遇到了一個我無法理解的奇怪問題。

X=[1,4,51,3,2,4,6]' % a column vector
knnsearch(X,8) %returns 7!

我測試了這一點,通常knnsearch(X,Y)將返回Y中給定的元素, 在X的近鄰。 但是當然'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最接近的元素,它在索引7 ,所以你得到7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM