やりたいこと
Scalaの勉強で簡単なデータ列の加工をしてみる。 データの大きさを合わせる為に、線形補間を使ってデータ列を0から1の値にスケーリングする。

最低値からの差分を出して、最も大きな差分の割合を計算する。
ソースコード
Linear Interpolation 12345678910111213141516171819202122232425import
scala.util.Random
object
LinearInterpolation {
def
main(args
:
Array[String]) {
// Make random array
def
randomArray(size
:
Int, max
_
val
:
Int)
=
{
val
rand
=
new
Random
for
(a <-
0
to size)
yield
rand.nextInt(max
_
val)
}
val
data
=
randomArray(
20
,
100
).toList
println(
"values:"
)
println(data)
// Find max and min value
val
max
_
val
=
data.reduceLeft{ (a,b)
=
> a max b }
val
min
_
val
=
data.reduceLeft{ (a,b)
=
> a min b }
println(
"max : "
+ max
_
val)
println(
"min : "
+ min
_
val)
// Do Linear Interpolation to change the range of values
val
after
=
data.map(x
=
> (x - min
_
val).toFloat / (max
_
val - min
_
val).toFloat)
println(
"after :"
)
println(after)
}
}