Средние значения этого трехмерного массива вдоль третьего измерения в Java

1

Как вычислить среднее значение трехмерной матрицы, которая аналогична использованию среднего (array, 3) в matlab, где "массив" является трехмерным, т.е. средние значения трехмерного массива вдоль третьего измерения. Явный эквивалент

Теги:
math
matrix

1 ответ

0

Для каждого элемента 3-го измерения вы получаете 2D-матрицу. Например,

int my3darray[][][] = new int[10][20][30];
new2darray = my3darray[i];

Для этой 2D-матрицы вы можете вычислить среднее значение. Например,

Размер 2D-массива можно рассчитать следующим образом:

array.length * array[0].length;

Тогда более или менее это то, что вам нужно:

int rows = 2;   // you get the size from array.length 
int cols = 3;   // you get the size from array[0].length
int i, j;
for (i=0;i<rows;i++); {
    for (i=0;j<cols;j++); {
        sum += res[i][j];
    }
}
System.out.println(sum/(rows*cols))

Если вы используете Apache Common Math, есть getMean и mean функция, и вы можете использовать ее следующим образом:

// assume values is a double[] array
double mean = StatUtils.mean(values);
  • 0
    Нет, среднее значение (rand (4,5,6), 3) будет усреднено только по третьему измерению, поэтому результатом будет матрица размера (4,5), и каждый элемент результата будет таким, что результат (i , j) = среднее (сжатие (оригинал (i, j, :)))
  • 0
    Да! @ aka.nice Это именно то, что я хочу вычислить, используя Java.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню