matlab程序处理数据过密并保留拐点的方法

一条曲线,采集点太密,想变少一些,可以采用间隔取点,但间隔取点易把最值点及拐点忽略,不能描述曲线真实形态。该matlab小程序:忽略斜率变化很小的地方,而斜率变化大的地方点保留,这样既减少了点又保留了曲线的走势。

m=102;
A=xlsread(‘1.xlsx’);
B=zeros(m,2);
B(1,1)=A(1,1);
B(1,2)=A(1,2);
i=1;
for n=1:(m-2),

r=(A(n+1,2)-A(n,2))/(A(n+1,1)-A(n,1));
s=(A(n+2,2)-A(n+1,2))/(A(n+2,1)-A(n+1,1));

if abs(r-s)>0.2,
i=i+1;
B(i,1)=A(n+2,1);
B(i,2)=A(n+2,2);
end
end

xlswrite(‘ytc’,B)

Taochun Yang
Author: Taochun Yang

佐雍得尝,与众分享,收获快乐!

Related Posts

发表回复