Problem 429. function on a moving window
Create a function that applies an operation (such as @sum, @mean, @std, @norm etc) to a moving window of the data.
First example:
filtered = mopt(@mean,1:6,1,2)
Then filtered = [NaN 2.5000 3.5000 4.5000 NaN NaN]
This is the moving average.
Second example:
filtered = mopt(@std,[0.2 0.8 0.7 1.1 1.1 1.0 0.2],2,0)
Then filtered = [NaN NaN 0.3215 0.2082 0.2309 0.0577 0.4933]
This is the 'moving standard error'.
The first arg of mopt is a function handle. It must be a function that takes a vector as input and produces a scalar as output.
The second arg is the vector of data.
The third and fourth args are the lags and leads that determin the size of the moving window.
Solution Stats
Problem Comments
-
1 Comment
GeeTwo
on 5 Aug 2022
It wasn't clear until seeing the test cases. The problem is to APPLY the given function handle and return the filtered data, NOT to return a function handle that will do this.
Solution Comments
Show commentsProblem Recent Solvers47
Suggested Problems
-
2228 Solvers
-
The Goldbach Conjecture, Part 2
2315 Solvers
-
Construct a string from letters and counts
141 Solvers
-
Duplicate each element of a vector.
601 Solvers
-
Cell Counting: How Many Draws?
1834 Solvers
More from this Author1
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!