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)代表的是按照行求标准差。

结果:

这里写图片描述

std函数参考
https://blog.csdn.net/Goldxwang/article/details/73201193
代码参考:《统计机器学习导论》

猜你喜欢

转载自blog.csdn.net/nockinonheavensdoor/article/details/80542942