如何操作列表列表中的移动平均线?

时间:2019-03-28 04:33:02

标签: wolfram-mathematica moving-average

我有一个mathematica中数字列表的列表,即 {{a,b,c,d,e},{f,g,h,i,j}}

我想在每个子列表上操作MovingAverage。

但是,

MovingAverage [listOfLists,{movingAverageElementChoice,movingAverageElementChoice}]仅返回一个一维列表,即第j列中的元素数除以numberOfSublists

我已经尝试了很多,请帮忙!

我尝试了MovingAverage [listOfLists,movingAverageElementChoice]

kineticsData8219K6Averaged =   MovingAverage [kineticsData8219K6,{10,10,10,10,10,10}];

我希望它输出由MovingAverage操作的每个子列表

1 个答案:

答案 0 :(得分:1)

您想要对列表的每个元素执行相同的操作。几乎在每种情况下,您都应该想到Map。您的每个元素都只是列表,但这不是问题。所以

data={{a, b, c, d, e},{f, g, h, i, j}};
Map[MovingAverage[#, 2]&, data]

为您提供结果

{{(a+b)/2, (b+c)/2, (c+d)/2, (d+e)/2}, {(f+g)/2, (g+h)/2, (h+i)/2, (i+j)/2}}

您可以在MovingAverage内提供其他参数来修改行为以使其符合您的需求。 #内的每个列表将一次替换data,并将每个MovingAverage的结果放入列表并返回给您。