如何从Lua中的数组的每个元素中减去一个值?

时间:2015-06-22 19:30:51

标签: arrays lua

我正在尝试编写一个函数来查找数据集的方差。

我遇到了一个小问题。我有一个数组,我想找出数组中每个元素与平均值的距离。这是我写的简化版本:

>y={1,2,3}
>y_average=2
>y_diff={}

>for key, value in pairs(y) do y_diff[key]=(y[key]-y_average)
>>return unpack(y_diff)
>>end

-1

我想得到的东西: -1,0,1

为什么它只给我第一个值而不是全部三个?

1 个答案:

答案 0 :(得分:0)

您的返回在第一次迭代中打破了循环,如评论中所述。试试这个:

for  i in ipairs(y) do
    y_diff[i] = y[i] - y_average
end
print( table.concat(y_diff, '\t') )

table.concat没有对它可以处理的元素数量的限制,如果你想将这些元素放在一个文件中比逐个编写它们更快,你会使用它。

相关问题