2016-09-29 208 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

是的,将它们存储在3D矩阵中。我无法添加答案,因为我不知道如何创建数据。 – Adriaan

回答

3

关注阿德里安的提醒,但:

x = reshape([data{:}],2,[])'; 
means = reshape(mean(cell2mat(x)),[],2)'  
means =  
    4.0000 4.7500 2.7500 
    1.5000 2.2500 2.2500