我在Scala中有这个矩阵:
val seq1 = (1, 2, 3)
val seq2 = (4, 5, 6)
val seq3 = (7, 8, 9)
val matrix = Seq(seq1,seq2,seq3)
我需要反转它,结果应该是:
val matrix2 = matrix.inverted
println(matrix2)
Seq(Seq(1,4,7), Seq(2,5,8), Seq(3,6,9))
实现这一目标的最佳方法是什么?
答案 0 :(得分:0)
您的矩阵是元组列表。
matrix: Seq[(Int, Int, Int)] = List((1,2,3), (4,5,6), (7,8,9))
您可以使用以下方法找到此元组列表的转置
val transMatrix=matrix.map(tp=>List(tp._1,tp._2,tp._3)).transpose.map(lst=>(lst(0),lst(1),lst(2))).toSeq
上述方法的输出
transMatrix: Seq[(Int, Int, Int)] = List((1,4,7), (2,5,8), (3,6,9))