1. 程式人生 > >matlab畫一個一維高斯分佈和似然估計

matlab畫一個一維高斯分佈和似然估計

n=5;m=0;s=1;x=s*randn(n,1)+m;mh=mean(x);sh = std(x,1);
X=linspace(-4,4,100);Y=exp(-(X-m).^2./(2*s^2))/(2*pi*s);
Yh=exp(-(X-mh).^2./(2*sh^2))/(2*pi*sh);
figure(1);clf;hold on;
plot(X,Y,'r-',X,Yh,'b--',x,zeros(size(x)),'ko');
legend('True','Estimated')

其中std()函式:

std(A):
std(A)函式求解的是最常見的標準差,此時除以的是N-1std
(A,flag): 這裡flag代表的是用哪一個標準差函式,如果取0,則代表除以N-1,如果是1代表的是除以N, std(A,flag,dim): 第三個引數代表的是按照列求標準差還是按照行求標準差,std(A,1,1)代表的是按照列求標準差,std(A,1,2)代表的是按照行求標準差。

結果:

這裡寫圖片描述