smoothing with Gaussian Kernel for loop problem
3 views (last 30 days)
Show older comments
KHOULOUD DABOUSSI
on 16 Nov 2022
Commented: Mathieu NOE
on 22 Nov 2022
im having a probelm with smoothing the data "ys" using gaussian kernel function everytime i run the for loop i recieve uhat = ys and kerf = 0 0 0 0 0 ... anyone can help me?
ns =length(ys);
nv =length(tv);
lambda = 0.05;
tv = (1:1:1000)';
for i = 1 : ns
k=(tv-tv(i));
kerf=exp(-k.*k/2*(lambda^2))/(sqrt(2*pi)*lambda);
uhat(i)=sum(kerf.*ys(i))/sum(kerf);
end
0 Comments
Accepted Answer
Mathieu NOE
on 18 Nov 2022
hello
try this
lambda = 0.05;
tv = (1:1:1000)';
nv =length(tv);
ys = sin(4*pi*tv./max(tv))+0.25*rand(nv,1);% dummy data
for i = 1 : nv
k=(tv-tv(i));
kerf=exp(-k.*k/2*(lambda^2))/(sqrt(2*pi)*lambda);
uhat(i)=sum(kerf(:).*ys(:))/sum(kerf);
end
plot(tv,ys,tv,uhat);
8 Comments
Mathieu NOE
on 22 Nov 2022
hello again
well, statistics are not my field of expertise
there are some publications that describe some methods for optimal tuning of lambda
but then i's up to you to code that as a matlab function (would basically be your own version of ksdensity)
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
