mindst.m
来自「用matlab实现的最近邻算法」· M 代码 · 共 35 行
M
35 行
%最近邻快速算法,输入样本W,待测点x,聚类后的中心矩阵center,每点归属maxU,各类隶属度U,D2 represents the
%D(X,Mp),输出最近点xmin,距离B
function [xmin,B]=mindst(W,x,center,maxU,U)
B=inf;
x(:,3)=[];
W(:,3)=[];
n=size(center);
n=n(1);
for i=1:n
%找到各类横坐标
% index = find(U(i,:) == maxU);
%调用子函数求出rp,D(Xi,Mp)(存在D中),
%[rmax,D1]=rp(W,index,center(i,:));
% step2,D2 represents the D(X, Mp)
D2(i)=norm(x-center(i,:));
end
% step 5
D3=min(D2);
i=find(D2==min(D2));
index = find(U(i,:) == maxU);
[rmax,D1]=rp(W,index,center(i,:));
% step 6
for i=1:length(D1)
if D3 < D1(i)+B
if norm(x-W(index(i),:))<B
NN=index(i);B=norm(x-W(index(i),:));
xmin=W(NN,:);
end
end
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?