%This is a demo for kernel estimators data_n = 20; point_n = 201; data = randn(data_n, 1); %save sample data load sample.mat kernel_sigma = 0.1; tmp = max(abs(data))+5*kernel_sigma; x = linspace(tmp, -tmp, point_n); mu = 0; sigma = 1; gaussian = exp(-0.5*((x-mu)/sigma).^2)/(sigma*sqrt(2*pi)); A = zeros(data_n, point_n); for i = 1:data_n, A(i,:)=exp(-0.5*((x-data(i))/kernel_sigma).^2)/(kernel_sigma*sqrt(2*pi)); end subplot(2,1,1); plot(x', A'/data_n, x, sum(A)/data_n, x, gaussian, 'r:', ... data, zeros(size(data)), 'g*'); kernel_sigma = 0.3; tmp = max(abs(data))+5*kernel_sigma; x = linspace(tmp, -tmp, point_n); gaussian = exp(-0.5*((x-mu)/sigma).^2)/(sigma*sqrt(2*pi)); A = zeros(data_n, point_n); for i = 1:data_n, A(i,:)=exp(-0.5*((x-data(i))/kernel_sigma).^2)/(kernel_sigma*sqrt(2*pi)); end subplot(2,1,2); plot(x', A'/data_n, x, sum(A)/data_n, x, gaussian, 'r:', ... data, zeros(size(data)), 'g*'); %h = findobj(gcf, 'type', 'line'); %set(h, 'linewidth', 2);