为了找到最佳拟合(通过 polyfit),我得到了负 p 值,但 matlab 不接受它(下标索引必须是真正的正整数或逻辑。)。有什么方法可以使用它吗?我想不出替代方法。我总是会得到负值。
编辑:
为此,我正在尝试使曲线的基线变平。我正在运行 for 循环以适应 1 到 3 个订单。然后我使用最小 normr 的值来找到最佳拟合,然后从整个曲线中减去它以获得直线基线。由于上面描述的问题,我尝试了几条曲线,但效果很好,但不适用于所有数据。
我正在处理的部分代码:
for i=1:3
[p,s]=polyfit(x,y,i);
a=s.normr;
b(i,1)=p(1);
normr(i,1)=a;
ind=find(b==min(b));
mn=b(ind,1);
Yflat=y-mn(1)*(x-mean(x));
ca{2,2}=Yflat;
clear a b normr p s rte ind ind2 Yflat
end