你的点就分的太开,如果可以用对数坐标的话就可以了
可以,那就是对数坐标,用semilogy代替plot就可以了,不过你的拟合曲线蛮难看得,个人建议你直接拟合log(y),x1的范围取[19:81]
clc
clear
x=[10+250/27,20,20+10/27,20+40/27,20+60/27, 20+100/27,20+150/27,20+190/27,20+240/27,30,30+40/27,30+100/27,30+130/27,40,40+100/27,40+200/27,50,50+50/27,50+170/27,60,60+50/27,60+180/27,70,70+40/27,70+150/27,80];
y=[1.0e-20,50/9*1.0e-20,1.0e-19,1.0e-18,1.0e-17,1.0e-16,1.0e-15,1.0e-14,1.0e-13,30/9*1.0e-13,1.0e-12,1.0e-11,1.0e-10,1.0e-9,1.0e-8,1.0e-7,50/9*1.0e-7,1.0e-6,1.0e-5,60/9*1.0e-5,1.0e-4,1.0e-3,60/9*1.0e-3,1.0e-2,1.0e-1,1];
logy=log(y);
x1=min(x):max(x);
logy1=interp1(x,logy,x1,'spline');
p=polyfit(x,logy,4);
plot(x,logy,'o',x1,logy1,'-k',x1,polyval(p,x1));
%axis([0,90,1.0e-20,1]);%axis manual;
%set(gca,'XTickLabel',[0,10,20,30,40,50,60,70,80,90],'yticklabel',{1.0e-20,1.0e-18,'1.0e-16','1.0e-14','1.0e-12','1.0e-10','1.0e-8','1.0e-6','1.0e-4','1.0e-2','1'});
grid on
xlabel('number of uncorrectable erased bits');
ylabel('log(probability)');
legend('(120,40,19)upper bound','(120,40,19)lower bound','(120,40,13)upper bound', '(120,40,13)lower bound','Location','East');