我有一个10×10 Array[Int]
val matrix = for {
r <- 0 until 10
c <- 0 until 10
} yield r + c
Run Code Online (Sandbox Code Playgroud)
并希望将"矩阵"转换为Array[Array[Int]]10行10列.
最简单的方法是什么?
Chr*_*tin 11
val matrix = (for {
r <- 0 until 3
c <- 0 until 3
} yield r + c).toArray
// Array(0, 1, 2, 1, 2, 3, 2, 3, 4)
scala> matrix.grouped(3).toArray
// Array(Array(0, 1, 2), Array(1, 2, 3), Array(2, 3, 4))
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,你可以这样做:
Array.tabulate(10,10)(_+_)
//> res0: Array[Array[Int]] = Array(Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), ....)
Run Code Online (Sandbox Code Playgroud)
如果您只需要一个没有任何值的10 x 10 Array [Int],
Array.ofDim[Int](10,10)
/> res1: Array[Array[Int]] = Array(Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Array(0
//| , 0, 0, 0, 0, 0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Array(0, ....
Run Code Online (Sandbox Code Playgroud)