fastupdatemapx.m

来自「有监督自组织映射-偏最小二乘算法(A supervised self-organ」· M 代码 · 共 36 行

M
36
字号
function [NewXMap] = FastUpdateMapX(Xtr,XMap,MLKP);

[NvarX,Nunit]=size(XMap);
[Nobjects,Dummy] = size(Xtr);
Tstart=cputime;
disp('Entering fast map update mode');

ContinueUpdate='Y';
Iteration=0;
while (ContinueUpdate == 'Y')
    Iteration=Iteration+1;
    OldXMap=XMap;
    NewXMap=zeros(NvarX,Nunit);
    Count=zeros(Nunit,1);
    for iobj=1:Nobjects
        X=Xtr(iobj,:);
        [Value, Winner] = DetermineWinner(X,XMap,MLKP.DistTypeX,MLKP);
        NewXMap(:,Winner)= NewXMap(:,Winner)+X';
        Count(Winner) = Count(Winner)+1;
    end
    for iunit=1:Nunit
        if (Count(iunit) > 0)
            NewXMap(:,iunit)=NewXMap(:,iunit)/Count(iunit);
        else
            NewXMap(:,iunit)=XMap(:,iunit);
        end
    end
    if (sum(sum(NewXMap-OldXMap)) == 0)
        Message=sprintf('Fast map update converged after %d iterations in %g seconds',...
                        Iteration,cputime-Tstart);
        disp(Message);
        ContinueUpdate ='N';
    else
        XMap=NewXMap;
    end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?