考虑以下形式的一些数据
Sample = [1 2 3 4 5 6 7 8 9 10]';
Data = [10 10 10 10 8 5 2 1 0.6 0.4]';
现在我知道了一个事实,当用半对数轴绘制时,这些数据应该形成一条直线:
问题是样品编号。由于所用仪器的限制,1、2、3 和 4 的最大输出为 10。所以我想做的是在样本 5:10 上拟合一条直线,然后用它来推断,这样我就可以估计 1、2、3 和 4 的值。
我对如何在 MATLAB 中执行此操作感到困惑,我的尝试如下:
Sample = [1 2 3 4 5 6 7 8 9 10]';
Data = [10 10 10 10 8 5 2 1 0.6 0.4]';
Sample(1:4) = [];
Data(1:4) = [];
x = Sample;
y = Data;
p = polyfit(x,y,0);
x1 = Sample;
f1 = polyval(p,x1);
figure;
semilogy(Sample,Data,'ro');
hold on
plot(x1,f1,'b--')
这产生了这个情节......