|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
Function res=DLLtest(i) %‘res’为函数返回值;‘i’为输入
fid=fopen('F:\核心\yy.txt','r'); %读入数据
tmp=fscanf(fid,'%f',[1,32]);
fclose(fid);
for k=1:size(tmp,2)/2 %size的作用是取矩阵tmp的列数,
%取行数的语句为:size(tmp,1)
a(k,1:2)=tmp(k*2-1:k*2)'; %利用FOR循环语句将tmp数据转化成一个k*2的矩阵A
end
cdate=a(:,1); %提出A的第一列,再将其赋给cdate
pp=a(:,2); %提出A的第二列,再将其赋给pp
sdate=(cdate-mean(cdate))/std(cdate); %对读入的数据进行初始化处理
if i==0
res= a; %设置返回值为原始数据
bar(cdate,pp) %对原始数据绘制条形图
xlabel('年度');
ylabel('利润统计')
else
logp2=polyfit(sdate,log10(pp),2); %对原始数据进行二次指数函数拟合
logpred2=10.^polyval(logp2,sdate);
logres2=log10(pp)-polyval(logp2,sdate);
r=pp-10.^(polyval(logp2,sdate));
subplot(1,2,1) %创建子图一,绘制二次指数函数的拟合效果图
semilogy(cdate,logpred2,'-',cdate,pp,'+');
grid on
xlabel('拟合结果')
subplot(1,2,2) %创建子图二,绘制二次指数函数的拟合残差图
plot(cdate,r,'+')
xlabel('拟合误差')
res=std(r); %设置返回值为二次指数函数的拟合残差
end |
|