针对学校的项目简单写了点程序,记录一下。
clear;
for n=10:10:100 //由于TXT文件名非线性连续,需要多个循环
m=[num2str(n),'ms.txt']; //文件名为共同点为‘ms.txt’
A=importdata(m); //读TXT
B=A.data(:,2);
aver(n/10,:)=sum(B)/2068;
xl(n/10,:)=n;
end
for n=200:100:1000
m=[num2str(n),'ms.txt'];
A=importdata(m);
B=A.data(:,2);
aver(n/100+9,:)=sum(B)/2068;
xl(n/100+9,:)=n;
end
for n=1200:200:3200
m=[num2str(n),'ms.txt'];
A=importdata(m);
B=A.data(:,2);
aver(n/200+14,:)=sum(B)/2068;
xl(n/200+14,:)=n;
end
for n=3600:200:5000
m=[num2str(n),'ms.txt'];
A=importdata(m);
B=A.data(:,2);
aver(n/200+13,:)=sum(B)/2068;
xl(n/200+13,:)=n;
end
for n=5250:250:10000
m=[num2str(n),'ms.txt'];
A=importdata(m);
B=A.data(:,2);
aver(n/250+18,:)=sum(B)/2068;
xl(n/250+18,:)=n;
end
for n=10500:500:60000
m=[num2str(n),'ms.txt'];
A=importdata(m);
B=A.data(:,2);
aver(n/500+38,:)=sum(B)/2068;
xl(n/500+38,:)=n;
end
x=xl;
y=aver;
plot(x,y,'k.','markersize',10); //离散图
hold on
P3=polyfit(x,y,1); //最小二乘法拟合一项式
t=0:1:70000;
S3=polyval(P3,t); //出 k 、b
plot(t,S3,'r'); //画拟合直线
grid on
xlabel('Integration time/ms','FontSize',12);
ylabel('Dark noise','FontSize',12);
legend('Raw data','Fitting curve')
P3