繁体   English   中英

在scala中重新采样,功能性的方式

[英]resampling in scala, the functional way

我有一个样本数组D,我想用替换统一重新采样以构造一个新的数组。 程序解决方案非常简单,但是我想知道是否有人对如何“功能方式”有一些想法? (我只是刚刚学习了Scala和函数式编程)

一个功能实现来演示我的意思:

val D = Array(0,1,2,3,4)  

val R = new Random();                           
var ResampledD = Array[Int]();           
var i = 0;                                      
while (i < D.length) {
    ResampledD = ResampledD :+ D(R.nextInt(D.length));
    i = i + 1;
} 
ResampledD
> res0: Array[Array[Int]] = Array(2, 2, 1, 3, 2)

Array随播对象具有一些构建新数组的方法,而您需要的是fill

val ResampledD = Array.fill(D.length)(D(util.Random.nextInt(D.length)))

或使用map

val ResampledD = D map { x => D(util.Random.nextInt(D.length)) }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM