X中每一行相对于X-Matlab中所有其他行的最近邻

X中每一行相对于X-Matlab中所有其他行的最近邻,matlab,knn,Matlab,Knn,有没有一种使用knnsearch matlab函数并返回的方法 X中每一行相对于X中所有其他行的最近邻? 我希望得到的输出类型与上面示例中的变量dd类似: X = [ 1 2 3 ; 4 3 5; 1 2 3; 1 2 3; 4 3 5; 5 2 1; 3 2 1; 3 5 1]; [rows,~] = size(X); for i = 1:rows for j = 1:rows d(i,j) = (norm(X(i,:)-X(j,:))); end

有没有一种使用knnsearch matlab函数并返回的方法 X中每一行相对于X中所有其他行的最近邻? 我希望得到的输出类型与上面示例中的变量dd类似:

X = [ 1 2 3 ; 4 3 5; 1 2 3; 1 2 3; 4 3 5; 5 2 1; 3 2 1; 3 5 1];

[rows,~] = size(X);

for i = 1:rows
    for j = 1:rows

         d(i,j) = (norm(X(i,:)-X(j,:)));

    end

   d(1:size(d,1)+1:end) = nan;
   [~,dd(i)] = min(d(i,:));

end

只需取
k=2
近邻,并放弃琐碎的解决方案。@fairr我认为你应该将其作为答案添加。只需取
k=2
近邻,并放弃琐碎的解决方案。@fairr我认为你应该将其作为答案添加。