我有一个大数组,我想在这个数组中每8个单元格求和。然后我想将这8个单元格的平均值分配给每个单元格。例如16个单元格:
0
0
3.69230000000000
4.54440000000000
0
0
1.20710000000000
0
0
0
0.213020000000000
0
0
0
0
0.355030000000000
字符串
将变成:
1.1805
1.1805
1.1805
1.1805
1.1805
1.1805
1.1805
1.1805
0.0710
0.0710
0.0710
0.0710
0.0710
0.0710
0.0710
0.0710
型
我该怎么做?
谢谢
2条答案
按热度按时间ldioqlga1#
首先,将数组整形为
8x*
数组:字符串
然后,计算这个数组在第一个轴上的平均值:
型
最后,创建一个1的
8x1
数组,将其乘以m
,并将结果整形为一列:型
(or正如Cris建议的那样,使用
repmat
来平铺m
数组:型
这给出:
型
py49o6xq2#
您可以使用
splitapply
来生成每个组的平均值,其中每个组通过重复1:N
8次来定义,其中N=numel(a)/8
是块的数量。然后使用
repelem
将其扩展回与输入a
相同的大小。字符串
用您想要的任何聚合函数替换
@mean
您可以使其更通用,只需很少的改进,以便它可以处理输入不能完全划分为8个块的情况。在这种情况下,如果需要,只需使用较小的“剩余”块
型