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