【发布时间】:2010-12-19 17:06:39
【问题描述】:
我正在尝试执行分箱平均。我正在使用代码:
Avg = mean(reshape(a,300,144,27));
AvgF = squeeze(Avg);
最后一行去掉了单一维度。
所以可以看出我的平均得分超过 300 分。它工作正常,除非我的总点数不等于 144*300 的倍数。
即使总点数不是 144*300 的倍数,是否有任何方法可以使这种分箱平均工作?
编辑:对不起,如果我的问题听起来令人困惑。澄清一下……
我有一个包含 43200 行和 27 列的文件。我通过一次分箱 300 行来平均,这意味着最后我留下了一个大小为 144×27 的矩阵。
我上面写的代码只有在我正好有 43200 行时才有效。在某些情况下,我有 43199、43194 等。当我的总行数是 300(bin 大小)的倍数时,reshape 函数起作用。当我的总行数不是 300 的倍数时,有没有办法使这种分箱平均工作?
【问题讨论】:
-
在不知道数据是什么样子的情况下,一个想法是用
NaN填充数组以达到所需的大小并使用nanmean与mean相同,只是忽略NaN 值. -
你总共少了多少分?一个或两个?数百?几千?
-
在某些文件中我有 86399,其他 86395 等等,而我一整天都需要 86400。就像我写的那样,如果我擦除更多点使其等于 143*300 ,它就可以工作,但我必须手动检查并擦除 pts 。所以我想知道是否有办法完成它
-
如果你的总点数是86,400,你代码中的“27”不应该是“2”吗?
-
不应该是 27,因为我在文件中有 27 列