📄 rectgrid.m
字号:
function [Neighbours, WeightValues] = RectGrid(Radius,Winner,MLKP);
if (Radius == 0)
Neighbours=[1 Winner];
WeightValues=1;
else
NeighbourFunction=upper(MLKP.NeighbourFunction);
if (NeighbourFunction == 'MEX' | NeighbourFunction == 'GAU')
XArr=(0:1:Radius)/Radius;
if (NeighbourFunction == 'MEX')
for i=1:Radius+1
MexHat(i)=2*exp(-2.5*XArr(i)^2)-exp(-6*(XArr(i)-0.5)^2);
end
else
for i=1:Radius+1
MexHat(i)=exp(-XArr(i)^2);
end
end
MexHat=MexHat/max(MexHat);
elseif (NeighbourFunction == 'BLK')
MexHat(1:Radius+1)=1;
else
MexHat=1-(0:Radius)/(Radius+1);
end
ind=0;
Crow=floor((Winner-1)/MLKP.Ncol)+1;
Ccol=Winner-(Crow-1)*MLKP.Ncol;
for irow=max(1,Crow-Radius):min(MLKP.Nrow,Crow+Radius)
for icol=max(1,Ccol-Radius):min(MLKP.Ncol,Ccol+Radius)
ind=ind+1;
Neighbours(ind)=(irow-1)*MLKP.Ncol+icol;
WeightValues(ind)=MexHat(1+max(abs(irow-Crow),abs(icol-Ccol)));
end
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -