甲最簡單的方法我有一個10到數組轉換爲2D陣列中的階
val matrix = for {
r <- 0 until 10
c <- 0 until 10
} yield r + c
並希望將「基質」到Array[Array[Int]]
轉換用10行和10列。
最簡單的方法是什麼?
甲最簡單的方法我有一個10到數組轉換爲2D陣列中的階
val matrix = for {
r <- 0 until 10
c <- 0 until 10
} yield r + c
並希望將「基質」到Array[Array[Int]]
轉換用10行和10列。
最簡單的方法是什麼?
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))
您顯示的代碼爲您提供了一個Int的矢量,而不是一個數組。如果Vector和它是好的,生成一個新的,你只需要獲得兩次
val matrix = for (r <- 1 to 10)
yield for(c <- 1 to 10)
yield r+c
如果您需要將現有的矢量轉換成數組[數組[INT]]正如你所說,使用分組克里斯 - 馬丁建議
matrix.grouped(10).toArray.map(_.toArray)
如果我理解正確的話,你可以這樣做:
Array.tabulate(10,10)(_+_)
//> res0: Array[Array[Int]] = Array(Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9), ....)
如果你只需要一個10×10陣列[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, ....
編輯..謝謝! – mohit 2014-12-19 07:52:06
for (x <- (0 until 10).toArray) yield (x until x + 10).toArray
'matrix',就像你定義的那樣,是一個'Vector [Int]',而不是'Array [Int]'。 – 2014-12-19 07:35:59