0

Moving average

Hi all,

Is there a Scilab function to compute a running average over a specified number of column entries within an array:

i.e:

Values in array | 3 cell running average |

6 | 5.3 |

3 | 4.7 |

7 | 7.0 |

4 | 5.3 |

10 | 4.0 |

2 | |

0 |

Thanks in advance!

Andy

Scilab

__Answers:__

0

Not as such. However, a routine for calculating a simple moving average can be easily written. Here is one. Please test it extensively before relying on it.

Please feel free to improve this code and report fail cases.

//Function to compute simple moving average. //vec is a simple row or column vector //windw is the number of data points over which the average has to be computed //avg is a column vector consisting of the computed moving averages //Example: //-->sma([6,3,7,4,10,2,0],3) // ans = // // 5.3333333 // 4.6666667 // 7. // 5.3333333 // 4. //Author: Rupak Rokade //FOSSEE, IIT Bombay function avg=sma(vec, windw) avg=[] for i=1:length(vec)-windw+1 av=sum(vec(i:i+(windw-1)))/windw avg=[avg;av] end endfunction

Thanks again rupakrokade!

29-10-18, 8:20 p.m.Noiser1234Login to add comment