如何使用scala将3乘以3矩阵

如何使用scala将3乘以3矩阵,scala,Scala,请找到密码 对象MatrixMul扩展应用程序{ val threedim = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9)) val threedimanother = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9)) val elements = for { row <- threedim ele <- row } yield ele for (i <- e

请找到密码 对象MatrixMul扩展应用程序{

val threedim = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
val threedimanother = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
val elements = for {
row <- threedim
ele <- row
} yield ele
for (i <- elements) {
println("the 3 dim array are " + i)
}
val elements1 = for {
row <- threedimanother
ele <- row
} yield ele
for (j <- elements1)
print("another 3 dim array  " + j)
def mult[A](a: [threedim] , b:[threedimanother])(implicit n :Numeric[A])={
for(row <- a)
  yield for(col <- b.transpose)
   yield row zip col map Function.tupled(_*_) reduceLeft(_+_) 
 }
 }
val threedim=Array(Array(1,2,3)、Array(4,5,6)、Array(7,8,9))
val threedimather=数组(数组(1,2,3),数组(4,5,6),数组(7,8,9))
val元素=用于{

行如果您按以下方式更改签名,则可以使用
mult
函数的实现:

def mult(a: Array[Array[Int]], b: Array[Array[Int]]) : Array[Array[Int]] = {
  for(row <- a)
    yield for(col <- b.transpose)
      yield row zip col map Function.tupled(_*_) reduceLeft(_+_)
}
def mult(a:Array[Array[Int]],b:Array[Array[Int]]):Array[Array[Int]={

对于(行,但我得到了错误,你能告诉我如何解决这个问题吗?顺便说一句,这段代码充满了错误。首先是
defmult[A](A:[threedim],…)
无效。
threedim
是一个值而不是一个类型。另外,我不知道方括号应该指示什么。它必须是
defmult[A](A:Array[Array[A]],b:Array[Array[A]]…
。您可能还希望使用
IndexedSeq
而不是arrow,因为创建新的
数组[A]
需要
ClassTag[A]
。嗨,阿米尔,你为什么要取消该解决方案?它工作正常。嗨,哈拉尔德,谢谢你的解决方案