"Roger Stafford" wrote in message <firstname.lastname@example.org>... > "dwi" wrote in message <email@example.com>... > > I have a matrix whose data are interrupted by sequences of zeros. I need every time that there's a zero value to substitute it with a sum of exponentials using the previous data, eg: > > x=[x1 x2 x3 0 0 0 x7 0 0] > > When i find the first zero in the element x4 I want: > > x4=(x3*e^(-1)+x2*e^(-2)+x1*e^(-3))/(e^(-1)+e^(-2)+e^(-3)); > > However, when I find the second zero value I need to calculate the same expression but without using the previous recalculated values. That is, > > x4=x5=x6 > > and for x8 I will use only the values in x7,x3,x2,x1 and then x8=x9 etc > > And all this for a 180000-length data. > > Any ideas on how to do this? > > Thanks in advance > - - - - - - - - - > a = 0; b = 0; > for k = 1:length(x) > if x(k) ~= 0 > a = x(k) + a*e^(-1); > b = 1 + b*e^(-1); > else > x(k) = a/b; > end > end > > Roger Stafford Thank you for your answer but if I use this the index of the exponent never changes.I want it to decrease as k increases, and i don't know hot to calculate a sum like this.