【问题标题】:Calculate the average of nested cells计算嵌套单元格的平均值
【发布时间】:2016-09-29 14:23:23
【问题描述】:

假设我们有这个元胞数组:

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

最后,我们应该将这两个结果收集到一个元胞数组中。最快的方法是什么,循环次数最少?

【问题讨论】:

  • 为什么你有单元格而不是矩阵? 3D 矩阵将成为您的朋友。
  • @adriaan.. 目前我将结果存储在data。有更好的方法吗?添加你的答案:-)
  • 是的,将它们存储在 3D 矩阵中。我无法添加答案,因为我不知道您是如何创建数据的。
  • @RCaetano 您编辑了一个 1x4 单元格,使其看起来像一个 4x1 单元格。那不一样。请不要编辑破坏原目的的代码。
  • 我没有注意到@Adriaan :/ 感谢您的提示 :)

标签: matlab loops cell-array


【解决方案1】:

听从 Adriaan 的建议,但是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多