x=[5,5,5,5,5,10,20,30,30,30,30];
diffx=diff(x);%求差分
rate=0.5;
m=mean(abs(diffx))*rate;%差分模均值的rate倍作为门限,rate可以根据平稳要求调整
index=find(abs(diffx)m);%差分模大于门限的下标
if~isempty(index)%非空即可能存在非平稳值
index2=diff(index);
index3=find(index2==1);%寻找与左右点相差都较大的值(认为这些值是非平稳值)
if~isempty(index3)
x(index(index3)1)=[];%去掉非平稳值
end
end
L=length(x);
ifL2%判断第一点数据是否为非平稳值
ifabs(x(1)-x(2))m
x(1)=[];
end
end
L=length(x);
ifL2%判断最后一点数据是否为非平稳值
ifabs(x(end)-x(end-1))m
x(end)=[];
end
end
<h4class=\"ask\">追问
x=
5555530303030
这是运行结果,能不能编程知到留下的这些数具体是数组中的第几个数?比方说刚才运行结果这些数是12345891011
谢谢啦
|