function Y_new=SlopeRemove(X,Y,mode)
L=length(Y);
p = polyfit(X,Y,1);
k=p(1);
if k>=0
theta=atand(k);
if mode==1 %mode=1 表示以最高点为准,下面的向上抬up
Y_new=Y+abs(X-X(L)).*tand(theta);
else if mode==0
Y_new=Y-abs(X-X(1)).*tand(theta); %mode=0 表示以最第点为准,上面的向下降down
end
end
else if k<0
theta=atand(-k);
if mode==1 %mode=1 表示以最高点为准,下面的向上抬up
Y_new=Y+abs(X-X(1)).*tand(theta);
else if mode==0
Y_new=Y-abs(X-X(L)).*tand(theta); %mode=0 表示以最第点为准,上面的向下降down
end
end
end
end
红色是有一定负斜率的数据,蓝色是去除斜率后的数据。