我有两个2d阵列,我希望乘以诸如
val x = Array(Array(2.0, 5.0))
val y = Array(Array(1.0, -1.0), Array(-1.0, 1.0), Array(2.0, -2.0))
我想获得像
这样的1d-ArrayArray(2.0 * 1.0 + 5.0 * -1.0, 2.0 * -1.0 + 5.0 * 1.0, 2.0 * 2.0 + 5.0 * -2.0)
我使用了x.zip(y) map (_.zipped map (_ * _)) map (_.sum)
但我只得到Array(-3.0)
我应该做什么?
感谢您的时间。
抱歉,我的意思是x数组的大小总是1项,如Array(Array(2.0,5.0))
答案 0 :(得分:2)
对于上面定义的x和y,以下内容应该有效。但是,如果x是一个数组数组,那么答案会有所不同。
scala> y map {x.flatten zip _ map {case(a,b) => a*b} reduce (_+_)}
res5: Array[Double] = Array(-3.0, 3.0, -6.0)