Я пытаюсь что-то сделать в scala.Scala: метод и метод toArray
scala> val x = Array(Array(8.524, 6.375, 17.043), Array(1.754, 3.509, -1.754), Array(12.69, -12.69, 25.38),Array(4.355, 3.687, 2.876))
x: Array[Array[Double]] = Array(Array(8.524, 6.375, 17.043), Array(1.754, 3.509, -1.754), Array(12.69, -12.69, 25.38), Array(4.355, 3.687, 2.876))
scala> val y = Array(1.0, -1.0, 2.0)
y: Array[Double] = Array(1.0, -1.0, 2.0)
Я пытался добавить их как:
Array(Array(8.524 + 1.0, 6.375 + (-1.0), 17.043 + 2),Array(1.754 + 1.0, 3.509 + (-1.0), -1.754 + 2), Array(....)......)
Чтобы сделать вещь выше, мой код
val result = for(i <- 0 until x.length) yield {
for(j <- 0 until y.length) yield x(i)(j) + y(j)
}
результат
result: scala.collection.immutable.IndexedSeq[scala.collection.immutable.IndexedSeq[Double]] = Vector(Vector(9.524, 5.375, 19.043), Vector(2.754, 2.509, 0.246), Vector(13.69, -13.69, 27.38), Vector(5.355, 2.687, 4.8759999999999994))
Я использовал toArray
метод по result
, но получите Array[scala.collection.immutable.IndexedSeq[Double]] = Array(Vector(9.524, 5.375, 19.043), Vector(2.754, 2.509, 0.246), Vector(13.69, -13.69, 27.38), Vector(5.355, 2.687, 4.8759999999999994))
Но я хочу получить Array(Array[Double])
, как я могу это сделать?
Кроме того, я попытался преобразовать весь элемент result
в Math.tan
val z = Array(1, 100, 200)
Если
я могу использовать z.map{x => Math.tan(x)}
достичь.
Если форму массива, как показано выше, как я могу сделать то же самое?
Спасибо за ваше время.
Результат для понимания зависит от типа коллекции, которую вы передаете. '0, пока x.length' не будет' Range' (который является 'IndexedSeq'). Исходя из этого, результатом будет «IndexedSeq», а не «Array». –
Так что это объясняет. Thanks –