如何使用scala将3乘以3矩阵
请找到密码 对象MatrixMul扩展应用程序{如何使用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
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]
。嗨,阿米尔,你为什么要取消该解决方案?它工作正常。嗨,哈拉尔德,谢谢你的解决方案