最外周以外のすべてのセルのムーア近傍(Moore neighborhood)の和を求める。
最外周のセルを削除してから返す。
Define moore_sum(mat_torus)= Func :©最外周以外のすべてのセルのムーア近傍の和を求める。 :Local rdim,cdim,mat_temp,r,c,temp : :©ムーア近傍の和を格納する行列を用意する。 :mat_temp:=mat_torus : :©最外周以外のすべてのセルを走査してムーア近傍の和を求める。 :rdim:=rowDim(mat_torus) :cdim:=colDim(mat_torus) :For r,2,rdim-1,1 : For c,2,cdim-1,1 : temp:=subMat(mat_torus,r-1,c-1,r+1,c+1) : temp:=mat▶list(temp) : mat_temp[r,c]:=sum(temp)-mat_torus[r,c] : EndFor :EndFor : :©最外周のセルを削除してから返す。 :Return subMat(mat_temp,2,2,rdim-1,cdim-1) :EndFunc
実行結果: