Among other ways you can use Array.range and map :
scala> Array.range(0,3).map(i => Array.range(0,3).map(j => (i,j))) res0: Array[Array[(Int, Int)]] = Array(Array((0,0), (0,1), (0,2)), Array((1,0), (1,1), (1,2)), Array((2,0), (2,1), (2,2)))
Or you can use Array.fromFunction :
scala> Array.fromFunction((i,j) => (i,j))(3,3) res1: Array[Array[(Int, Int)]] = Array(Array((0,0), (0,1), (0,2)), Array((1,0), (1,1), (1,2)), Array((2,0), (2,1), (2,2)))
Scala 2.8 gives you even more options - view the Array object. (Actually, this is good advice for 2.7, also ....)