matlab code for filter
Ben Abbott
bpabbott at mac.com
Wed Feb 4 06:09:47 CST 2009
On Feb 4, 2009, at 6:01 AM, frederic manseau wrote:
> Hi,
>
> I found this Matlab code for filtering data which is supposed to do
> a Local regression using weighted linear least squares and a 1st
> degree polynomial model.
>
> pethsmooth=smooth(x,50,'rloess');%%%%%%this uses a Matlab function
> 'rloess' to smooth the data based on how ever number of points you
> want
> belowzero=pethsmooth<0;%%%%%% this detects points below zero (you
> can't have a negative firing rate)
> pethsmooth(belowzero)=0; %%%%this sets all those <0 points to 0 in
> the smoothed PETH
>
> Would anyone know if it’s possible to adapt this so that it can be
> used in Octave?
>
>
> Thank you for your help,
>
> Frederic Manseau
I assume smooth() is part of MathWorks Curve Fitting Toolbox?
http://www.mathworks.com/access/helpdesk/help/toolbox/curvefit/index.html?/access/helpdesk/help/toolbox/curvefit/smooth.html&http://www.google.com/search
?client=safari&rls=en-us&q=matlab+smooth&ie=UTF-8&oe=UTF-8
As far as I can tell there is no non-proprietary implementation that
includes the "rloess' option.
If a moving average is sufficient, you might try applying the function
below.
http://www.koders.com/matlab/fidF98C4038125ED2B735FD1A470193BE6D0527537C.aspx
The one below uses splines
http://www.koders.com/matlab/fid4EB3DAE35400131296D09E63B306CB1A01624579.aspx?s=Chebyshev
I haven't tried any of these, so I can't attest to their capabilities.
The two lines below, will run fine in Octave.
> belowzero=pethsmooth<0;
> pethsmooth(belowzero)=0;
It would be easier (and I think clearer) to write
pethsmooth (pethsmooth<0) = 0;
Ben
More information about the Help-octave
mailing list