我有几条包含许多数据点的曲线。 x轴是时间,假设我有n条曲线,其数据点对应于x轴上的时间。
有没有办法获得n条曲线的“平均值”,尽管数据点位于不同的x点?
我在想也许就像使用直方图来存储值,但我不确定从哪个代码开始可以实现这样的事情。
Excel或MATLAB可以这样做吗?
我还想绘制平均曲线的标准差。
一个问题是:x值之间的分布不均匀。有更多的值接近t = 0,但是在t = 5(例如),数据点的频率要小得多。
另一个问题。如果两个值落在1个bin中会发生什么?我假设在计算平均曲线之前我需要这些值的平均值。
我希望这能传达出我想做的事情。
关于我可以用什么代码(MATLAB,EXCEL等)来实现我的目标的任何想法?
答案 0 :(得分:1)
由于您的系列不是均匀分布的,因此在计算均值之前进行插值是避免偏向更频繁采样的时间的一种方法。请注意,根据定义,插值可能会减小值的范围,即插值点不可能精确地落在测量点的时间。这对极端统计(例如第5和第95百分位数)而不是均值有更大的影响。如果您计划使用此路线,则需要interp1
和mean
功能
另一种方法是做加权平均值。这样可以避免截断测量值的范围。假设x
是测量值的向量,t
是从某个参考时间以秒为单位的测量时间向量,那么您可以通过以下方式计算加权平均值:
timeStep = diff(t);
weightedMean = timeStep .* x(1:end-1) / sum(timeStep);
正如上面的评论所述,您的数据样本将有助于建议计算“平均值”的适当方法。