Вы можете изменить свой массив и поместить каждую строку в одну и ту же строку:
octave:6> [n,m] = size(x);
octave:7> mean(reshape(x.', m*2, n/2))
ans =
2.00000 0.87500
Из-за транспонирования результат представляет собой вектор строки, вы можете просто транспонировать его обратно, если вы действительно хотите иметьвектор столбца.
На достаточно новом MATLAB (к которому у меня нет доступа) вы сможете использовать несколько входных аргументов для параметра измерения mean
, что позволит вам использовать многомерные массивыв этом случае:
[n,m] = size(x);
mean(reshape(x, [2, n/2, m]), [1, 3]) % should leave n/2-sized dimension
По понятным причинам вышеупомянутое не проверено.