如何对scala向量中的每个值求和

如何对scala向量中的每个值求和,scala,vector,apache-spark,apache-spark-mllib,Scala,Vector,Apache Spark,Apache Spark Mllib,我有一个向量集合 var coefficentsList = new MutableList[Vector] 我想把单个向量的每个元素和其他向量的每一列相加,比如。例如,系数列表将具有以下向量: v1 = [0.2, 0.4, 0.1] v2 = [0.4, 0.5, 0.1] v3 = [0, 0, 0.3] 所以我想要的结果向量是 V = [0.6, 0.9, 0.5] 为此,我遇到了breeze向量,因此我编写了以下代码: coefficentsList.toArray.map{

我有一个向量集合

var coefficentsList = new MutableList[Vector]
我想把单个向量的每个元素和其他向量的每一列相加,比如。例如,系数列表将具有以下向量:

v1 = [0.2, 0.4, 0.1]
v2 = [0.4, 0.5, 0.1]
v3 = [0, 0, 0.3]
所以我想要的结果向量是

V = [0.6, 0.9, 0.5]
为此,我遇到了breeze向量,因此我编写了以下代码:

coefficentsList.toArray.map{
  Vector(_).reduce(_ + _)
}
但它给了我一个类型不匹配的异常:find Array[Double],required:String


当我被这个

zip
难倒时,有没有其他方法来实现这一点

val coefficientsList = List(
  Vector(0.2, 0.4, 0.1),
  Vector(0.4, 0.5, 0.1),
  Vector(0.0, 0.0, 0.3)
)

val result = coefficientsList.reduceLeft { (acc, vec) =>
  acc zip vec map {
    case (a, b) => a + b
  }
}
// result: scala.collection.immutable.Vector[Double] = Vector(0.6, 0.9, 0.5)

Vector
需要一个类型参数,因此首先修复键入错误。另外,您为什么需要使用
toArray
?直接在你的
可变列表上使用
map
否?@alifirat这可以是
scala.collection.immutable.Vector
breeze.linalg.Vector
o.a.s.mllib.linalg.Vector
-从上下文看它甚至不清楚。@zero323它确实是o.a.s.mllib.linalg.Vector,但不并行化(这是使用
reduce
的原因)