--include "SysFixerCommon.lua"
--include "LuaApi.lua"

GUID="{7286A710-6BE5-43e5-AF84-C844B02B47D8}"


function Scan()
local a = {1,2,3,4,5,6,7}
local b = {}
BDM_LUA_GLOBAL_OBSERVER:Lua_PrintDebugString("a = "..#a)
local window = 5
  for i = 1 , #a do
  local min = i - (window - 1)/2
  local max = i + (window - 1)/2
   if min <= 0 or max > #a then
    b[i] = a[i]
    BDM_LUA_GLOBAL_OBSERVER:Lua_PrintDebugString("b["..i.."]= "..b[i])
   else
    avg = Average(a, (i - (window - 1)/2), window)
    BDM_LUA_GLOBAL_OBSERVER:Lua_PrintDebugString("avg["..i.."]= "..avg)
   end
 end
end


function Average(a, begin, window)
local avg = 0
local total = 0
for i = begin, begin + window - 1 do
 total = total + a[i]
end
avg = total/window
return avg
end


执行结果:

DebugPut: a = 7
DebugPut: b[1]= 1
DebugPut: b[2]= 2
DebugPut: avg[3]= 3
DebugPut: avg[4]= 4
DebugPut: avg[5]= 5
DebugPut: b[6]= 6
DebugPut: b[7]= 7