こんにちは、A に 2 つの行列があり、BI は A 行列の k 個の最近傍を見つけたいと考えています。私の matlab コードは次のとおりです。
A=[1 2 1;3 4 1;5 6 1;];
B=[11 12 2;13 4 2;15 16 2;17 18 2;1 2 2;3 4 2;5 6 2;];
[row,col]=size(A);
[row1,col1]=size(B);
dist=zeros(row,row1);
nnarray = zeros(row,row1);
k=5;
nnarray1 = zeros(row,k);
for i=1:row
for j=1:row1
dist(i,j)=sqrt(sum((A(i,:)-B(j,:)).^2));
end
[y,index]=sort(dist(i,:));
nnarray(i,:)=index';
end
nnarray の出力行列は次のとおりです。 // A 行列の最近傍
5 6 7 2 1 3 4
6 5 7 2 1 3 4
7 6 5 2 1 3 4
ここで、出力は、A マトリックスの各要素に対して NEAREST NEIGHBOR を 1 つだけ取得しました。しかし、Aの各要素の5つの最近傍、つまりA(1,1)、A(1,2)などの5つの最近傍を見つけたい.
どうやってするの?コードをどこで変更すればよいですか?