Мне нужна помощь (очень новичок в этом)! У меня есть 2D-матрица, в которой я должен создать новую матрицу, где значения в каждой ячейке являются средними значениями окружающих ячеек в исходной матрице.
например, если у меня есть матрица
{ 19, 124, 28
115, 22, 25
9, 21, 22
};
, результат будет
{70, 55, 49
51, 42, 24
48, 35, 22
};
Я уже создал конструктор копирования и метод для суммирования в соседние ячейки ( см. ниже), чтобы я мог разделить на них сумму исходных ячеек матрицы , но я не уверен, как создать еще один массив среднего значения, в котором я суммирую фактические значения в исходном массиве и делю на значения массива sumCells для создания нового массива средних.
public Matrix sumCells() //sums the adjacent cells and uses the sum to calculate the average
{
//copy the object
Matrix m = new Matrix(_matrix); //new matrix with the sum of the surrounding cells
//initilialise variables
//sum of surrounding cells
for (int i=0; i<m._matrix.length; i++)
{
for (int j=0; j<m._matrix[i].length; j++)
{
int numberOfSurroundingCells = 0;
int cells = 0;
for (int x=i-1; x<=i+1; x++)
{
for (int y=j-1; y<=j+1; y++)
{
if (0<=x && x<m._matrix[i].length && 0<=y && y<=_matrix[i].length)
{
numberOfSurroundingCells += m._matrix[x][y];
cells++;
}
}//end loop 4
}//end loop 3
m._matrix[i][j] = cells;
}//end loop 2
}//end loop 1
return m;
Любое направление поможет вам спасибо!