x=(0:0.02:6)*1e4
y=fun([3e5,8.3,0.6],x)+rand(size(x)).*exp(-(x/2e4).^2)*20
%原图能用hist(data,n)画
%data数据n区间统计画柱状图
%要保留hist数据
%原语句要返x y值
%[y x]=hist(data,n)
%没数据所用边两句模拟xy数据
bar(x,y,1)hold on%根据xy数据画柱状图
[maxy ind]=max(y)
p=nlinfit(x,y,fun,[maxy*x(ind),log(x(ind)),1])%拟合
%p(1)~幅度关 p(2)~mu p(3)~sigma
yfit=fun(p,x)%计算拟合曲线
plot(x,yfit,'r','linewidth',2)
xmax=exp(p(2)-p(3)^2)%计算布极布处值 x=exp(mu-sigma^2)
ymax=fun(p,xmax)
plot([xmax xmax],[0 ymax],'g','linewidth',2)
xmean=exp(p(2)+p(3)^2/2)%计算期望值 x=exp(mu+sigma^2/2)
ymean=fun(p,xmean)
plot([xmean xmean],[0 ymean],'c','linewidth',2)
hold off
xlim([min(x) max(x)])
xlabel('BC浓度(ng/m^3)')
ylabel('频数')
legend('统计数据',['数态布:\mu=' num2str(p(2)) ',\sigma=' num2str(p(3))],...
['极概布位置:x=' num2str(xmax)],['期望值位置:x=' num2str(xmean)])
text(xmean+10000,ymean+10,'$ y=\frac{A}{x}e^{-\frac{(lnx-\mu)^2}{2\sigma^2}} $',...
'interpreter','latex','FontSize',18)
-
1、首先在R语言中,定义一个变量m,并使用函数c()进行对变量m赋值,使用的是“->”,如下图所示。
2、可以不使用函数,直接使用“->”进行赋值,如下图所示。
3、也可以倒过来赋值,将变量放在函数后面,还是使用“->”赋值,如下图所示。
4、然后使用assign对变量进行赋值,前面参数是被赋值的变量,后面是需要的对象,如下图所示。
5、最后定义一个变量w,使用函数c()进行赋值;定义一个变量c,取w变量的倒数,如下图所示就完成了。