代码如下:(其中直线拟合的拐点是从loglog图中知道的)function CAmoxingA=readdata('x');CCu=A(:,3);CCuMin=min(CCu);CCuMax=max(CCu);[n,p]=size(A);for i=1:1:n; CCuj(i)=CCuMin*exp(((i-1)/50)*log(CCuMax/CCuMin)); k=find(CCu>CCuj(i)); [y(i),m]=size(k);end x=CCuj; x1=x(1,1:19); x2=x(1,19:38); x3=x(1,38:2168); y1=y(1,1:19); y2=y(1,19:38); y3=y(1,38:2168); p1=polyfit(x1,y1,1); p2=polyfit(x2,y2,1); p3=polyfit(x3,y3,1); %Y1=vpa(poly2sym(p1,'x'),6) %Y2=vpa(poly2sym(p2,'x'),6) %Y3=vpa(poly2sym(p3,'x'),6) x1curve=0.7:0.1:6.3; x2curve=6.2:0.1:19.0; x3curve=18.0:0.1:71.0; p1curve=polyval(p1,x1curve); p2curve=polyval(p2,x2curve); p3curve=polyval(p3,x3curve); %plot(x,y,':',x1curve,p1curve,'--',x2curve,p2curve,'-.',x3curve,p3curve,'*') %legend('x-y','p1','p2','p3') plot(log(x),log(y),'o',x1curve,p1curve,x2curve,p2curve,x3curve,p3curve) loglog(x,y,'o'); xlabel('C'); ylabel('A(c)>C)'); grid on grid minor
这种我都懂,但我就不知道我的程序哪里出问题了,你可以看一看吗
本回答被网友采纳