2016-09-29 7 views
1

Предположим, что у нас есть этот массив ячеек:Вычислить среднее число вложенных клеток

data = {{[1,2,3],[3,6,3]},{[6,8,2],[1,1,1]},{[4,8,3],[1,2,3]},{[5,1,3],[1,0,2]}}; 

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

Average 1 between: 
1 2 3 
6 8 2 
4 8 3 
5 1 3 
--------- 
4 4.75 2.75 

Average 2 between: 
3 6 3 
1 1 1 
1 2 3 
1 0 2 
--------- 
1.5 2.25 2.25 

Наконец, мы должны собрать эти два результата в массиве ячеек. Каков самый быстрый способ сделать это, с минимальным количеством циклов? посоветуйте

+3

Почему у вас есть клетки, а не матрицы? 3D-матрицы будут вашим другом здесь. – Adriaan

+0

@adriaan .. В настоящее время я храню свои результаты в 'data'. Любой лучший способ сделать это? Добавьте свой ответ :-) – user2991243

+1

Да, сохраните их в трехмерных матрицах. Я не могу добавить ответ, так как я понятия не имею, как вы создаете свои данные. – Adriaan

ответ

3

Follow Адрианом, но:

x = reshape([data{:}],2,[])'; 
means = reshape(mean(cell2mat(x)),[],2)'  
means =  
    4.0000 4.7500 2.7500 
    1.5000 2.2500 2.2500 
Смежные вопросы