Java矩阵转置 - 成对

时间:2017-11-26 10:51:14

标签: java matrix transpose

我需要对角地转换我的nXn方阵中的数字,就像你在常规转置中一样,只是成对地从第二位到n位。

例如:

int[][] matrix1 =  {{11,12,13,14},
                   {15,16,17,18},
                   {19,20,21,22},
                   {23,24,25,26}} ;

   int[][] result= {{11, 12, 15, 16}, 
                   {13, 14, 17, 18}, 
                   {19, 20, 23, 24}, 
                   {21, 22, 25, 26}} ; 

请注意,最后2个数字会切换到下一行的前2个,如果有6个数字,最后2个会切换到中间2,依此类推。

代码必须以:

开头
public static int[][] blocks (int[][] matrix, int sqrtN)

之前我使用的常规转置:

  public static int[][] columns (int[][] matrix) {   

      int m = matrix.length;                                                                               
      int n = matrix[0].length;                                                                            

      int[][] columns = new int[n][m];                                                                     

      for (int x = 0; x < n; x++) {                                                                        
          for (int y = 0; y < m; y++) {                                                                    
              columns[x][y] = matrix[y][x];                                                                
          }                                                                                                
      }                                                                                                    

      return columns;                                                                                      
  }                               

编辑:具体说明如下:

n必须有一个正方形&#34;函数接收矩阵sqrN ^ 2XsqrN ^ 2,数字sqrN表示所有块的大小。它的输出必须是一个二维数组,其数字是从左到右组织的矩阵块,直到向下。&#34;

0 个答案:

没有答案