Как работать со скользящей средней в списке списков? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть список списков чисел в Mathematica, т.е. {{a, b, c, d, e}, {f, g, h, i, j}}

и я хочу использовать MovingAverage для каждого подсписка.

Тем не менее,

MovingAverage [listOfLists, {movingAverageElementChoice, movingAverageElementChoice}] просто возвращает один одномерный список, который представляет собой число элементов в столбце j, разделенное на числоOfSublists

Я много пробовал, помогите пожалуйста!

Я пробовал MovingAverage [listOfLists, movingAverageElementChoice]

kineticsData8219K6Averaged = MovingAverage [кинетикаData8219K6, {10, 10, 10, 10, 10, 10}];

Я хочу, чтобы он выводил каждый подсписок, оперируемый MovingAverage

1 Ответ

1 голос
/ 28 марта 2019

Вы хотите сделать то же самое для каждого элемента списка.Вы должны думать о 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 будет помещен в список и возвращен вам.

...