📄 myparzen.m
字号:
%function p=Parzen(xi,x,h1,f)
%xi为样本,x为概率密度函数的自变量的取值,
%h1为样本数为1时的窗宽,f为窗函数
%返回x对应的概率密度函数值
clc,clear;
Num=2000; % 样本数
%产生服从正态分布的随机样本
xi=mvnrnd([0 1 ],eye(2),Num)';
% x1=mvnrnd([2 0 ],2*eye(2),Num)';
xi(2,:)=[]; %将2维样本转换成1维样本
x=linspace(-3,3,1024);
f=@(u)(1/sqrt(2*pi))*exp(-0.5*u.^2);
h1=4;%窗宽h1
N=size(xi,2);%取xi的列数赋给N
hn=h1/sqrt(N);
[X Xi]=meshgrid(x,xi);
p=sum(f((X-Xi)/hn)/hn)/N;
%xi=rand(1,1024); %按照均匀分布在0-1之间产生一维随机样本1024个
%x=linspace(-1,2,1024); %在-1-2之间划分1024个点
%p=Parzen(xi,x,1,[]);
%plot(x,p);
%xi=randn(1,1024); %按照0-1分布产生一维随机样本1024个
%x=linspace(-2,2,1024);
%p=Parzen(xi,x,1,[]);
%plot(x,p);
% Num=1000; % 样本数
% %产生服从正态分布的随机样本
% x1=mvnrnd([0 1 ],eye(2),Num)';
% % x1=mvnrnd([2 0 ],2*eye(2),Num)';
% x1(2,:)=[]; %将2维样本转换成1维样本
% x=linspace(-2,2,1024);
% p=Parzen(xi,x,1,[]);
figure;
plot(x,p,'g-');
title('parzen窗法估计正态分布 h1=4');
ylabel('N=2000');
%figure,plot(x1,p,'g-');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -