通过沿主对角线或反对角线翻转子矩阵来检查矩阵转换

17 Mar 2025 | 4 分钟阅读

矩阵变换,也称为矩阵运算或矩阵操作,是指对矩阵执行显式任务,从而产生调整或更改后的矩阵。矩阵是由按行和列协调排列的各种数字组成的数学设计。

矩阵变换包括许多操作,例如标量乘法、矩阵加法和减法、转置、矩阵翻转等等。

问题陈述

给定一个大小为 N x N 的方阵,其中每个单元格都包含一个整数(整数)。你的任务是执行两种矩阵变换:沿主对角线翻转和沿反对角线翻转。

对于上述给定陈述,我们可以使用矩阵变换 - 矩阵翻转。它将根据特定模式反转所选子矩阵中元素的顺序。

主对角线翻转

主对角线翻转包括沿矩阵的主对角线切换元素的顺序。此对角线从左上角延伸到右下角。通过交换此对角线上的元素来完成更改。

方法

沿主对角线遍历矩阵,即,对于位置 (i, j) 处的每个元素,将其与位置 (j, i) 处的元素交换。

示例

矩阵 = [[9, 8, 5],[3, 2, 1],[6, 5, 4]]

输出:执行主对角线翻转后获得的输出是 [[9, 3, 6],[8, 2, 5],[4, 1, 4]]。

反对角线翻转

反对角线翻转包括沿矩阵的反对角线切换元素的顺序。此对角线从右上角延伸到左下角。通过交换此反对角线上的元素来完成更改。

方法

沿反对角线交叉矩阵,即,对于位置 (i, j) 处的每个元素,将其与位置 (n-j-1, n-i-1) 处的元素交换,其中 n 是矩阵的大小。

示例

矩阵 = [[9, 8, 5],[3, 2, 1],[6, 5, 4]]

输出:执行反对角线翻转后获得的输出是 [[4, 8, 9],[1, 2, 3],[4, 5, 6]]。

代码实现 (Java)


Check Matrix Transformation by Flipping Sub-Matrices along the Principal or Anti-Diagonal

说明

  1. 此代码导入用于操作数组和列表的内置库。
  2. 它指定 MatrixTransformation 类。
  3. principalDiagonalFlip 函数将 2D 结构作为输入,并在执行主对角线翻转后返回另一个 2D 结构(结果)。
  4. rs 和 cs 具有原始矩阵中的行号和段号。
  5. 因此,您会得到一个新矩阵,其元素按倒序排列。
  6. 嵌套循环是初始网格的单个单元的基础。
  7. 渲染质量(即交换行(线)和列(段)索引)并将它们保留在结果矩阵中。
  8. 结果是返回翻转的框架。
  9. antiDiagonalFlip 是一种与 principalDiagonalFlip 等效的反对角线翻转策略/过程。
  10. 循环语句用于遍历主矩阵的每个元素。
  11. 值沿由 rs 和 cs 指示的行和列移入结果矩阵。
  12. 返回给定矩阵(输入)的转置。
  13. printMatrix 是一个函数,它打印矩阵(矩阵)组件以及给定标题。
  14. main 方法定义了 3x3 矩阵 (originalMatrix)。
  15. 打印第一个矩阵。调用 principalDiagonalFlip 函数,添加翻转矩阵。
  16. 该函数调用 antiDiagonalFlip 函数,打印的矩阵是翻转后的矩阵。

结论

沿主对角线或反对角线翻转是一个基本问题,属于计算矩阵变换。