【发布时间】:2013-09-11 17:35:43
【问题描述】:
hii 我在 A,B 中有两个矩阵。我想找到 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。 但我想找到 A 中每个元素的 5 个最近邻,即 A(1,1)、A(1,2) 等的 5 个最近邻。
怎么做? 我应该在哪里修改我的代码?
【问题讨论】: