2017-02-15 71 views
0

我试图将2个四维数组一起添加,并且出现类型不匹配的错误;发现:需要单位:数组[数组[数组[数组[双]]]]添加多维数组的类型不匹配

这里是我的代码

val a = Array.ofDim[Int](3,1,4,2) 
val b = Array.ofDim[Double](4,1,5,3) 

var c : Array[Array[Array[Array[Double]]]] = Array() 

c = (a zip b).map{ case (x,y) => x + y } 

编辑:纠正语法=到: 遗憾的麻烦

回答

1

第一关闭,你正在创建没有任何内容的多维数组。

请考虑以下情况。

val x = Array.ofDim[Char](21) 
x.length  // res0: Int = 21 
x.head.toInt // res1: Int = 0 

这创建了一个Array[Char],其中包含21个空(或零初始化)元素。当你压缩2个4-dim数组时,你会得到一个元组数组,每个元组包含2个3-dim数组。

val a = Array.ofDim[Int](3,1,4,2) 
val b = Array.ofDim[Double](4,1,5,3) 
a zip b // res0: Array[(Array[Array[Array[Int]]], Array[Array[Array[Double]]])] 

所以如果不深入挖掘,这些不能一起添加。