2016-01-25 150 views
0

我有10個2D數組,它們是7x5,每個數組表示存儲RGB值的平均值的圖像。我現在想要將存儲35個值的這些數組中的每一個複製到一個35x10大小的二維數組中,但是我想按列存儲每一個數組,即。將第一個二維數組複製到35x10數組的第一列,以便每列都垂直存儲其中一個圖像。按列java填充二維數組

所以我試圖每個在單獨的列這些二維數組的存儲相同的2D陣列中:

圖片1:

0 34 40 50 0 
91 55 60 64 102 
89 65 68 78 86 
74 66 98 77 77 
107 65 68 74 83 
119 70 55 64 94 
0 52 59 48 0 

圖2:

0 27 38 40 0 
67 80 85 97 94 
90 82 84 110 119 
99 66 117 116 115 
111 93 82 122 149 
119 106 102 133 123 
0 52 72 58 0 

希望的輸出:

0 0 
34 27 
40 38 
50 40 
0 0 
91 67 
55 80 
60 85 
64 97 
102 94 
.... 

這是我的代碼至今:

public static void populateArray() { 
    for (int r = 0; r < image1.length; r++) { 
     for (int c = 0; c < image1[r].length; c++) { 
      pixArray[r][c] = image1[r][c]; 
     } 
    } 

    System.out.println("\n"); 
    for (int r = 0; r < image2.length; r++){ 
     for(int c=0;c < image2[r].length;c++){ 
     pixArray[r][c+1]=image2[r][c]; 

     } 
    } 

    for (int i = 0; i < pixArray.length; i++) { 
     for (int j = 0; j < pixArray[i].length; j++) { 
      System.out.print(pixArray[i][j] + " "); 
     } 
     System.out.println(); 
    } 

    } 
} 
+1

而問題是? – Atri

+0

'pixArray [r] [c] = image1 [r] [c];'此代碼'r'只循環7次,不循環35次。再次檢查!我認爲它應該是'pixArray [r * image1 [r] .length + c%image1 [r] .length] [0] = image1 [r] [c];' –

回答

1

你必須做這樣的事情

for (int r = 0; r < image1.length; r++) { 
    for (int c = 0; c < image1[r].length; c++) { 
     pixArray[r*image1[0].length+c][0] = image1[r][c]; 
    } 
} 

for (int r = 0; r < image2.length; r++) { 
    for (int c = 0; c < image2[r].length; c++) { 
     pixArray[r*image2[0].length+c][1] = image2[r][c]; 
    } 
} 
+0

感謝您的幫助@gpasch – Sfitz12173