我有一個二維陣列,比如一個 3x3 矩陣,并且想要將所有元素與給定值相乘。這是我到目前為止所擁有的:
val m = Array(
Array(1,2,3),
Array(4,5,6),
Array(7,8,9)
)
val value = 3
for ( i <- m.indices) yield m(i).map(x => x*value)
//Result:
//IndexedSeq[Array[Int]] = Vector(Array(3, 6, 9), Array(12, 15, 18), Array(21, 24, 27))
問題是我IndexedSeq[Array[Int]]現在有一個,但我需要這個Array[Array[Int]]就像val m.
我知道例如for (i <- Array(1, 2, 3)) yield i會導致結果,Array[Int]但我無法弄清楚如何將所有這些放在一起。
只是附加.toArray也不起作用
uj5u.com熱心網友回復:
如果要創建新Array實體(副本):
val m = Array(
Array(1,2,3),
Array(4,5,6),
Array(7,8,9)
)
val value = 3
val newM = m.map{ array => array.map{x => x * value}}
或者,如果您想“就地”修改原始陣列:
val m = Array(
Array(1,2,3),
Array(4,5,6),
Array(7,8,9)
)
val value = 3
for (arr <- m; j <- arr.indices) {
arr(j) *= value
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/512163.html
標籤:数组斯卡拉
