Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中创建二维数组_Ruby - Fatal编程技术网

在ruby中创建二维数组

在ruby中创建二维数组,ruby,Ruby,我是ruby新手,正在尝试创建2D数组 我不想使用任何lib和好的表达式 mat = Array.new(rows){ Array.new(cols) } 而是像C方式一样,首先声明2d数组mat[[]] mat = Array.new(rows) i = rows while i > 0 mat[i].push(Array.new(cols) ) i -=1 end 它给出了错误,因为mat[[],表示未定义的局部变量或main:Object的方法“mat”(Name

我是ruby新手,正在尝试创建2D数组 我不想使用任何lib和好的表达式

mat = Array.new(rows){ Array.new(cols) }
而是像C方式一样,首先声明2d数组mat[[]]

mat = Array.new(rows)
i = rows
while i > 0
    mat[i].push(Array.new(cols) )
    i -=1
end
它给出了错误,因为
mat[[]
,表示未定义的局部变量或main:Object的方法“mat”(NameError)

当我删除declarion时,它会将矩阵创建为
[1,2,[]]]

假设传递了行和列

怎么做我就是这样做的

rows = 5
cols = 3

mat = Array.new(rows)
i = rows
while i >= 0 
  mat[i] = (Array.new(cols) )
  i -=1
end

p mat # => [[nil, nil, nil], [nil, nil, nil], [nil, nil, nil], [nil, nil, nil], [nil, nil, nil], [nil, nil, nil]]
mat = []
  rows.times do |r| 
    mat[r] = []
    cols.times do |c| 
      mat[r][c] 
    end
  end
new(i,Array.new),其中“i”是要嵌入的数组数

例:

您甚至可以在嵌入式阵列中指定所需的值:

例:


你应该分享你的成果是的还有你改变了什么/why@KalmanHazins-我没有投反对票,但只是粘贴一些代码并没有多大帮助-几句关于这如何解决问题的话可以很好地教会一些人这是一个新手。@Uriagass我觉得很冷。:)他已经知道他想要什么,我只是让他通过了他的语法错误我没有投票,但代码不是用Ruby编写的,这可能会赢得否决票。显示一个有效的答案是可以的,但是显示一个有效的惯用答案是更好的。您能显示您试图创建的最终数组吗?Ruby没有2D数组(除非您进行扩展并包含
矩阵
),Ruby有数组数组。请提供一个您需要的结果示例。另外,请花时间格式化问题,使其更具可读性。难以阅读和理解的问题得到的帮助要少得多;人们把你的努力解释成他们愿意帮助我。我想解释一下为什么你不在标准库或任何其他库中考虑<代码>矩阵<代码>。这不符合你的想法。是否先检查生成的
mat
?然后执行
array
 Array.new(3, Array.new)
 returns  `=> `[[], [], []]`.
Array.new(3, Array.new(3, Array.new(3, "HEY"))
 => [[["HEY", "HEY", "HEY"], ["HEY", "HEY", "HEY"], ["HEY", "HEY", "HEY"]], [["HEY", "HEY", "HEY"], ["HEY", "HEY", "HEY"], ["HEY", "HEY", "HEY"]], [["HEY", "HEY", "HEY"], ["HEY", "HEY", "HEY"], ["HEY", "HEY", "HEY"]]]