DenseVector卷积,如何。(Scala Breeze)

时间:2014-01-24 10:32:50

标签: scala signal-processing scala-breeze

天真用户希望在Scala Breeze中进行简单的卷积:

import breeze.linalg._
import breeze.numerics._
import breeze.signal.support.{OverhangOpt, CanConvolve} // ??

val kernel = DenseVector(1.0, 2.0)
val data   = DenseVector(2.0, 3.0, 4.0, 5.0)
val out    = data.convolve(kernel)

有人可以写一个小例子如何做到这一点吗?

1 个答案:

答案 0 :(得分:3)

你已经以正确的方式行事了。只需确保您拥有最新版本的breeze,即0.6-SNAPSHOT。例如,请在build.sbt中使用以下部分:

libraryDependencies ++= Seq(
        "org.scalanlp" % "breeze_2.10" % "0.6-SNAPSHOT"
    )

resolvers ++= Seq(
        "Sonatype Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/",
        "Sonatype Releases" at "https://oss.sonatype.org/content/repositories/releases/"
    )

无需从breeze.signal.support导入内容,您的原始示例将正常运行:

scala> import breeze.linalg._
import breeze.linalg._

scala> import breeze.signal._
import breeze.signal._

scala> convolve(DenseVector(1.0, 2.0), DenseVector(3.0, 4.0, 5.0, 6.0))
res1: breeze.linalg.DenseVector[Double] = DenseVector(10.0, 13.0, 16.0)