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 + -
显示快捷键?