2017-02-15 4 views
0

Я попытался объединить 2 четырехмерных массива, и у меня есть ошибка несоответствия типов; найдено: Блок требуется: Array [Array [Array [Array [Double]]]]Несоответствие типа для добавления массива многомерных измерений

Вот мой код

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-мерных массива, вы получаете массив кортежей, каждый из которых содержит 2 3-мерных массива.

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]]])] 

Таким образом, они не могут быть объединены вместе, не копая глубже.

Смежные вопросы