【问题标题】:Element wise average of structure fields with arrays具有数组的结构字段的元素平均
【发布时间】:2017-10-11 21:05:45
【问题描述】:

我有一个名为“xyz”的结构,其内容如下。如何创建一个新变量(一个 141x136 双精度),该变量具有字段的元素平均平均值。

【问题讨论】:

    标签: matlab struct


    【解决方案1】:

    您可以按照以下步骤操作:

    1. 将结构转换为元胞数组。
    2. 从单元格生成一个逗号分隔的列表,并沿第三个维度连接单元格的内容,生成一个 3D 数值数组。
    3. 沿第 3 维计算平均值。

    例子:

    xyz.v1 = ones(5,6);
    xyz.v2 = 2*ones(5,6);  % example data
    c = struct2cell(xyz);  % step 1
    c = cat(3, c{:});      % step 2
    result = mean(c, 3);   % step 3
    

    考虑一下你是否真的需要一个结构体。也许您可以改为使用 3D 数组(取决于您的其余代码)。这通常更节省时间和内存。这些字段将对应于 3rd-dim 切片,您只需要上面的第 3 步,即mean(..., 3)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 2022-01-11
      • 2013-12-29
      • 1970-01-01
      • 2014-04-17
      • 1970-01-01
      相关资源
      最近更新 更多