Im пытается вычесть один и тот же элемент из другого массива, то есть [0,0] - [0,0] и [0,1] - [0,1], но я просто получить исключение из массива из пределов, и я не могу понять, почему. Может ли кто-нибудь увидеть проблему с кодом?Индекс вычитания элемента массива за пределы
//pixArray and avgPix already contain data
int[][] pixArray = new int[35][10];
int[][] avgPix = new int[35][1];
int[][] correctImg = new int[35][10];
public void correctImage() {
for (int r = 0; r < correctImg.length; r++) {
for (int c = 0; c < correctImg[r].length; c++) {
correctImg[r][c] = avgPix[r][c] - pixArray[r][c];
System.out.println(correctImg[r][c]);
}
}
}
мне также нужно изменить цикл так, что avgPix только петли каждый раз, когда столбец pixArray является 0, потому что avgPix имеет только один столбец может кто-нибудь подскажет, как я могу это сделать?
Любая причина, по которой 'avgPix' является только 35x1 вместо 35x10? Если есть, есть ли причина, почему это 2D вообще? – ryanyuyu
avgPix хранит среднее значение для каждой строки в pixArray, я просто сохранил его в 2D, чтобы не сбиться с пути, я не думаю, что это будет иметь значение. Мне все еще нужно циклировать avgPix каждые 10 раз – Sfitz12173
, вы говорите, что пытаетесь вычесть тот же элемент из двух разных массивов. но avgPix имеет 1 col, поэтому [0], [0] - [0], [0] в порядке, но [0], [1] - [0], [1] - нет. Это из вашего вопроса. может быть, плохой пример? –