天真用户希望在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)
有人可以写一个小例子如何做到这一点吗?
答案 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)