hexagon.m

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

M
35
字号
function [Neighbours, WeightValues] = Hexagon(Radius,Winner,MLKP);

if (Radius == 0)
    Neighbours = Winner;
    WeightValues = 1;
    return;
end

nrow=MLKP.Nrow;
ncol=MLKP.Ncol;
crow=floor((Winner-1)/ncol)+1;

ind=0;
for i=-Radius:Radius
    ncells=2*Radius+1-abs(i);
    for j=Winner+i*ncol-floor(ncells/2):Winner+i*ncol+floor((ncells-1)/2)
        irow=floor((j-1)/ncol)+1;
        if (irow>=1 & irow<=nrow)
            if (j>=(crow+i-1)*ncol+1 & j<=(crow+i)*ncol)
                if ((crow-2*floor(crow/2))==1)
                    ind=ind+1;
                    Neighbours(ind)=j;
                else
                    k=j+irow-2*floor(irow/2);
                    if(k>=(crow+i-1)*ncol+1 & k<=(crow+i)*ncol)
                        ind=ind+1;
                        Neighbours(ind)=k;
                    end
                end
            end
        end
    end
end
WeightValues(1:ind) = 1;

⌨️ 快捷键说明

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