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