scala - 在Scala中反转矩阵
问题描述
我在 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))
实现这一目标的最佳方法是什么?
解决方案
您的矩阵是元组列表。
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))
推荐阅读
- android - 当 viewPager 位于主片段中时,如何从 Main Activity 更改 viewPager 的位置
- html - 将文本向上移动,同时与图片保持在同一行中
- java - src-resolve:无法将名称“tns:callResult”解析为(n)“类型定义”
- reactjs - 使用 react-testing 库提交 Formik 表单
- rust - 有没有办法在不使用 C ABI 的情况下在 ARM 上设置程序计数器?
- r - R:从数据框的行中堆叠值
- python - 创建新的 Dataframe 数据切片问题
- matlab - 如果循环中任何 Y 为零,Matlab 不会回归
- php - 如何在php url中添加id和title
- asp.net-core - 尝试更新记录后,我得到“值不能为空”