ズッキーニのプログラミング実験場

プログラミング + アカデミック + 何か面白いこと。 記載されているものは基本的に私が所属する団体とは関係がありません。

   May 20

[Scala]線形補間でデータのスケーリング

by zuqqhi2 at 2013年5月20日
Pocket

やりたいこと

Scalaの勉強で簡単なデータ列の加工をしてみる。

データの大きさを合わせる為に、
線形補間を使ってデータ列を0から1の値にスケーリングする。

線形補間の式はこれ
linearinterpol

最低値からの差分を出して、最も大きな差分の割合を計算する。

ソースコード

import 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)
    }
}

Related Posts

  • 2013年3月3日 [Scala]Pancake Sort Image Video of Pancake Sort http://www.youtube.com/watch?feature=player_embedded&v=kk-_DDgoXfk Source code of scala Image Video […]
  • [Play][Scala]PlayFrameworkでリクエスト駆動のバッチを作る2016年12月21日 [Play][Scala]PlayFrameworkでリクエスト駆動のバッチを作る はじめに この記事はScala Advent Calendar […]
  • 2014年2月26日 [Android][Scala][Windows7]ScalaでAndroidアプリを作る 目的 JavaよりScalaの方が個人的に開発しやすいので ScalaでAndroidアプリを作成できるようにしてみる。 本当はUbuntuでやりたかったけれど、VirtualBoxからUSBで接続したAndroidが認識できなかったためWindowsで。 0. […]
  • 2014年9月7日 [sbt]プラグインの利用方法 目的 Scala Sbt でプラグインを使う方法のメモ。 Googleで検索しても門外漢用の記事がなくて苦労したため、メモしてみた。 環境 OSLinux www4322gi 3.2.0-64-generic #97-Ubuntu SMP […]
  • 2015年3月29日 ScalaとSbtのインストール Scala Sbt インストール Scalaはオブジェクト指向言語と関数型言語の両方の特徴を併せ持つハイブリッドな言語。 SbtはScalaのビルドツール。プロジェクト・パッケージ・ライブラリ管理もしてくれる便利なツール。 環境 OSLinux […]
  • 2013年6月1日 [Scala][Play2]EC2上にインストール なんとなくscalaが使いたくなって入れてみた。 以上。 I would like to use scala, so I installed play framework. That's […]
Pocket

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.