2016-01-25 4 views
0

У меня есть 10 2D-массивов размером 7x5, каждый из которых представляет изображение, в котором хранятся средние значения RGB. Теперь я хочу скопировать каждый из этих массивов, сохраняя значения 35 в 2D-массив размером 35x10, но я хочу хранить каждый по столбцу, т. Е. копируя первый 2D-массив в первый столбец массива 35x10, поэтому каждый столбец сохраняет одно из изображений по вертикали.Заполнение 2D-массива по столбцу java

Так что я пытаюсь сохранить каждый из этих 2D массивов в отдельных столбцах в том же 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

Смежные вопросы