Lua 我试图对表中的值进行算术运算,结果总是出错。这是我的密码

Lua 我试图对表中的值进行算术运算,结果总是出错。这是我的密码,lua,Lua,我正在尝试对表值执行算术运算,但不断出现错误。这是我的全部代码。我基本上是试图产生单纯形噪声。我已经创建了一个多维数组(表),并试图对值执行操作,但我不断收到一个错误,表示我无法对表值执行算术。我不知道我是否必须把它转换成什么。请帮忙 totalNoiseMap = {} function simplex_noise(width, height) simplexnoise = {} for i = 1,512 do simplexnoise[i] = {}

我正在尝试对表值执行算术运算,但不断出现错误。这是我的全部代码。我基本上是试图产生单纯形噪声。我已经创建了一个多维数组(表),并试图对值执行操作,但我不断收到一个错误,表示我无法对表值执行算术。我不知道我是否必须把它转换成什么。请帮忙

totalNoiseMap = {}

function simplex_noise(width, height)
   simplexnoise = {}
   for i = 1,512 do
       simplexnoise[i] = {}
       for j = 1, 512 do
           simplexnoise[i][j] = 0
       end
   end
   frequency = 5.0 / width

   for x = 1, width do
       for y = 1, height do
           simplexnoise[x][y] = noise(x * frequency,y * frequency)
           simplexnoise[x][y] = (simplexnoise[x][y] + 1) / 2
       end
   end

   return simplexnoise
end

function noise(x, y, frequency)
    return simplex_noise(x / frequency, y / frequency)
end

function generateOctavedSimplexNoise(width,height,octaves,roughness,scale)
    totalnoise = {}
    for i = 1,512 do
        totalnoise[i] = {}
        for j = 1, 512 do
            totalnoise[i][j] = 0
        end
    end
    layerFrequency = scale
    layerWeight = 1
    weightSum = 0

    for octave = 1, octaves do
        for x = 1, width do
            for y = 1, height do
            totalnoise[x][y] = (totalnoise[x][y] + noise(x * layerFrequency,y * layerFrequency, 2) * layerWeight)

            end
        end

        --Increase variables with each incrementing octave
        layerFrequency = layerFrequency * 2
        weightSum = weightSum + layerWeight
        layerWeight = layerWeight * roughness

    end
    return totalnoise
end

totalNoiseMap = generateOctavedSimplexNoise(512, 512, 3, 0.4, 0.005)
在这里,您可以得到表
噪波(x*layerFrequency,y*layerFrequency,2)
,按标量
layerWeight
将其乘以标量
总噪波[x][y]

我可以想到如何将表乘以标量——应该是这样的

for i = 1,512 do
   for j = 1,512 do
       a[i][j] = t[i][j] * scalar
   end
end
但我无法通过添加来获得您想要做的事情。假设它应该是两个表的相加

for i = 1,512 do
   for j = 1,512 do
       a[i][j] = b[i][j] + c[i][j]
   end
end

但它只适用于相同大小的表

我是否需要以某种方式转换它。我只是被卡住了。继续得到什么错误?错误是试图对表值执行算术。不要将代码放在注释中,编辑您的问题。
noise()
返回一个表,您希望得到什么
noise(x*layerFrequency,y*layerFrequency,2)*layerWeight
do?
for i = 1,512 do
   for j = 1,512 do
       a[i][j] = b[i][j] + c[i][j]
   end
end