gpt4 book ai didi

arrays - Scala中的数组转置

转载 作者:行者123 更新时间:2023-12-04 17:32:57 25 4
gpt4 key购买 nike

我有 2 个 Scala 数组,我想将它们相乘。

val x = Array(Array(1,2),Array(3,4),Array(5,6),Array(7,8),Array(9,10),Array(11,12),Array(13,14),Array(15,16),Array(17,18),Array(19,20),Array(21,22))

val y = Array(2, 5, 9)

我希望得到一个 Array.ofDim[Int](3, 2)喜欢
val z = Array(Array(1*2 + 3 *2 + 5*2 + 7*2... 2*2 + 4*2 + 6*2 + 8*2...,),Array(1*5 + 3*5 + 5*5 + 7*5... 2*5 + 4*5 + 6*5 + 8*5...,),Array(1*9 + 3 *9 + 5*9 + 7*9... 2*9 + 4*9 + 6*9 + 8*9...,)

我尝试使用 x.transpose ,然后 zip y去做。

但这是错误的。

我怎样才能做到这一点?

对不起,我的代码是
x.transpose.map(_.sum) zip y map {case(a, b) => a * b }

最佳答案

scala> val z = x.transpose
z: Array[Array[Int]] = Array(Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21), Array(2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22))

scala> z map (arr => y map (k => arr.foldLeft(0)((acc, i) => acc + (i*k))))
res15: Array[Array[Int]] = Array(Array(242, 605, 1089), Array(264, 660, 1188))

scala> res15.transpose
res16: Array[Array[Int]] = Array(Array(242, 264), Array(605, 660), Array(1089, 1188))

关于arrays - Scala中的数组转置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36984597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com