如何执行k次函数?

时间:2014-12-29 06:25:08

标签: scala

我有一个生成随机数的函数,如下所示:

def genRandom(): Double = {
  //pass
  return something
}

现在,如何调用上面的函数来创建k维随机向量?我一直在想

(0 to k).foreach {
  // FIXME Vec.append(getRandom())
}

但这似乎不起作用。

如何调用此genRandom函数k次并从中创建一个随机向量?

2 个答案:

答案 0 :(得分:7)

可能的方法:

Vector.fill(k)(getRandom())

或:

(0 until k).map( _ => getRandom())

或:

 for ( i <- 0 until k ) yield getRandom()

答案 1 :(得分:3)

请注意foreach提供Unit,而不是将某些参数应用于函数的集合。如上所述,在map上使用for-yieldfillVector。关于后者,还要考虑tabulate,它允许生成多维向量;但在这方面,

Vector.tabulate(k)(_ => genRandom())

对于二维(n次m)Vector的情况,

Vector.tabulate(n,m)((_,_) => genRandom())
相关问题