Are you trying to calculate an Exponentially Weighted Moving Average? If so then you might want to read this forum thread: http://www.jsoftware.com/pipermail/programming/2008-September/012296.html
2009/11/16 Richard Kubina <rjkub...@oakland.edu>: > Hi, first time poster, new J user. > I cannot figure out how to do a certain sorta algorithm in J without a for > loop. > I have an array of data: > a1=: 10 7 8 3 5 > > and the other to be calculated iteratively, except for the first value which > is already known. > a2=: 6 > > So I need to take the 6 and pair it with 10, do some calculations append the > new number to the end of a2. > I used this function to do this > > GetEWMAData =: monad : 'for_x. }.SubGroupedData do. EWMAData=:EWMAData, > (lambda*x)+((1-lambda)*({:EWMAData)) end.' > > where lambda is 0.2, SubGroupedData is a1 here and EWMAData is a2, getting > updated by appending the new number to the end of the list. > Is there a way to do this without having the reassigning EWMAData itself > with something appended to it, and using a for loop? > Thanks! > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm