我有一组数据,其中我已经以3组读数记录了值(以便能够获得SEM的一般概念).我将它们记录在一个如下所示的列表中,我试图将其折叠成每组3个点的平均值:
我想基本上将每3行折叠成一行,其中为该集合提供平均数据值.实质上,它看起来如下:
这是我知道如何基本上在Excel中做的事情(即使用数据透视表),但我不知道如何在MATLAB中做同样的事情.我已经尝试过使用accumarray,但很难知道如何合并多个条件.我需要创建一个子数组,其数字对应于每个唯一的3个数据点集.通过蛮力,我可以创建一个数组,如:
subs = [1 1 1; 2 2 2; 3 3 3; 4 4 4; ...]'
使用一些循环并将其作为我的子数组,但由于它不依赖于数据本身,并且可能始终存在奇怪的打嗝(即每组超过3个数据点,或缺少数据等).我知道必须有某种方法让这种类似的Pivot-table-esque分组,但需要一些帮助才能让它开始.谢谢.
以下是文本形式的输入数据:
Subject Flow On/Off Values
1 10 1 2.20
1 10 1 2.50
1 10 1 2.60
1 20 1 5.50
1 20 1 6.10
1 20 1 5.90
1 30 1 10.10
1 30 1 10.50
1 30 1 10.50
1 10 0 1.90
1 10 0 2.20
1 10 0 2.30
1 20 0 5.20
1 20 0 5.80
1 20 0 5.60
1 30 0 9.80
1 30 0 10.20
1 30 0 10.20
2 10 1 5.70
2 10 1 6.00
2 10 1 6.10
2 20 1 9.00
2 20 1 9.60
2 20 1 9.40
2 30 1 13.60
2 30 1 14.00
2 30 1 14.00
2 10 0 5.40
2 10 0 5.70
2 10 0 5.80
2 20 0 8.70
2 20 0 9.30
2 20 0 9.10
2 30 0 13.30
2 30 0 13.70
2 30 0 13.70