Возьмите среднее значение маскированного массива вдоль определенной оси в Matlab - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь усреднить область 3-мерного массива, указанного массивом масок в matlab.Это довольно просто выполнить в python.

import numpy

array = numpy.arange(27).reshape(3,3,3)
mask = numpy.array( [ 
                        [1,0,1],
                        [0,1,0],
                        [1,0,1]
                        ], dtype=bool )

array[mask] = array[mask].mean(0)

Перевод синтаксиса в Matlab приводит к ошибке, поскольку маскирование, похоже, не работает так же

array = reshape(1:27, 3,3,3);
mask = [true,false,true;false,true,false;true,false,true];
array(mask) = mean( array(mask), 0 )

Я пыталсямножество разных вещей, чтобы заставить это работать, но не имели никакого успеха.Я нашел несколько ответов на похожие вопросы по математике, они, как правило, используют совершенно незнакомые мне операции, и я не в состоянии понять их достаточно хорошо, чтобы реализовать их.

...