定義矩陣列表的列表。
scala> val matrix = List(List(0,1,2,3),List(4,5,6,7), List(8,9,10,11),List(11,12,13,14))
matrix: List[List[Int]] = List(List(0, 1, 2, 3), List(4, 5, 6, 7), List(8, 9, 10, 11), List(11, 12, 13, 14))
集團與行和grouped
匹配每個組使用take
和takeRight
scala> matrix.grouped(2).flatMap(xs => xs match {
| case x: List[List[Int]] => List(x.head.take(2) ::: x.last.take(2), List(x.head.takeRight(2) ::: x.last.takeRight(2)))
| })
res0: Iterator[List[Any]] = non-empty iterator
scala> res0.toList
res1: List[List[Any]] = List(List(0, 1, 4, 5), List(List(2, 3, 6, 7)), List(8, 9, 11, 12), List(List(10, 11, 13, 14)))
上半年和下半年這將工作的方陣,你就必須做一些提取更多的工作爲其他大小的矩陣。
你是如何代表你的矩陣? –
原始矩陣的大小是否固定?或者它會有所不同,但是每個軸始終都是2的倍數? –
嘗試使用'Seq'和它的方法'分組(尺寸:Int)',看看你能想出什麼..如果你遇到問題,回來一些代碼,看看我們是否可以幫助改進你的方法。 –