Scala中的二维数组乘法

4

我可以使用zip和map方法来乘以一维数组。

我想要乘以二维数组。

我不知道怎么做。如果我现在有两个数组:

val x = Array(Array(1, 2),Array(3, 4),Array(5, 6))
val y = Array(Array(5, 10),Array(10, 15),Array(15, 20))

我希望得到一个数组(Array),形如(Array(1*5, 2*10), Array(3*10, 4*15)...等等。

此外,我想得到所有内部数组的总和,像这样:Array(1*5 + 2*10, 3*10 + 4*15 ....)

在Scala中,最理想的方法是什么?

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3

更长(更易读?)的版本:

x.zip(y) map { case (xe, ye) =>
  xe.zip(ye).map { case (a, b) => a * b }
}

一句话说明:

x.zip(y) map (_.zipped map (_ * _))

总和:

x.zip(y) map (_.zipped map (_ * _)) map (_.sum)

1
这对我来说非常有帮助。 谢谢。 - Joey Kim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,