我正在尝试在Ruby中学习数组操作,但是在修改数组中的指定元素时遇到了问题。
对于上下文,我正在编写一个生成Matrix的程序,然后对所述矩阵执行操作。矩阵定义为matix(i,j,val)
,其中i
是行数,j
是列数,val
是填充矩阵的每个单元格的值它被实例化。
矩阵存储在由多个一维数组创建的data
变量中,如下所示:
@data = Array.new(i) { Array.new(j) {val} }
我正在尝试编写一个函数set(i,j,val)
,它将(i,j)
处的元素设置为val
中存储的值。我试图通过迭代实现这一目标:
_i = 0
@data.each do |sub|
if _i == i
sub[j] = val
end
_i += 1
end
代码应迭代到矩阵中的i
行并更改列j
中的元素。遗憾的是,sub[j] = val
并未更改该值。如何在指定的索引j
处更改数组的值?
答案 0 :(得分:2)
[]
方法链接在一起来直接访问它们。您不需要迭代一个值:
@data[i][j] = new_value