Module: MoreMath::Sequence::MovingAverage
- Included in:
- MoreMath::Sequence
- Defined in:
- lib/more_math/sequence/moving_average.rb
Instance Method Summary collapse
- #simple_moving_average(n) ⇒ Object (also: #moving_average)
Instance Method Details
#simple_moving_average(n) ⇒ Object Also known as: moving_average
4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/more_math/sequence/moving_average.rb', line 4 def simple_moving_average(n) n < 1 and raise ArgumentError, 'n < 1, has to be >= 1' n <= @elements.size or raise ArgumentError, 'n > #elements, has to be <= #elements' avg = [] 0.upto(@elements.size - n) do |i| sum = 0.0 i.upto(i + n - 1) do |j| sum += @elements[j].to_f end avg << sum / n end avg end |