smoothing with Gaussian Kernel for loop problem
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
KHOULOUD DABOUSSI
am 16 Nov. 2022
Kommentiert: Mathieu NOE
am 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 Kommentare
Akzeptierte Antwort
Mathieu NOE
am 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 Kommentare
Mathieu NOE
am 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)
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

