Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.
|
|
dwi
Posts:
15
Registered:
10/18/12
|
|
Re: sum of exponentials
Posted:
Nov 23, 2012 12:01 PM
|
|
"dwi" wrote in message <k8o5ro$6ae$1@newscl01ah.mathworks.com>... > "dwi" wrote in message <k8o3vo$ia$1@newscl01ah.mathworks.com>... > > "dwi" wrote in message <k8o2mg$pdp$1@newscl01ah.mathworks.com>... > > > "Roger Stafford" wrote in message <k8lqar$4po$1@newscl01ah.mathworks.com>... > > > > "dwi" wrote in message <k8l6sb$2fj$1@newscl01ah.mathworks.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. > > > > A correction: > > x8=(x7*e^(-1))/e^(-1) > > ie without using x1,x2,x3 but only the immediate previous non-zero values > > This is what I have so far: > s=0; > s1=0; > i=1; > while i<=length(x) > for j=1:length(x) > if x(i)~=0 > s=s+???? %%%%%the numerator which I still don't know how to calculate > s1=s1+e^(-j); > i=i+1; > else > x(i)=s/s1; > i=i+1; > j=1; > s=0; > s1=0; > end > end > end > This seems to work fine for the denominator. ANy ideas about the numerator? It doesn't work though if I have subsequent zeros as it devides with zero when I set s1=0 inside the if..I'm at a loss
|
|
|
|