1. 程式人生 > >Matlab - 求數組的零值與過零點索引

Matlab - 求數組的零值與過零點索引

ascend function fun asc sce abs 相交 == 索引

function zeroindex=pickzero(x)
%找出數組的零值及過零點(正負相交處,可能偏離0)
m = length(x);
x1=x(1:m-1);
x2=x(2:m);
indz = find(x==0); %zero point
indzer = find(x1.*x2<0); %negative/positive
n=length(indzer);
for i=1:n
if abs(x(indzer(i)))>abs(x(indzer(i)+1))
indzer(i)=indzer(i)+1;
end
end
zeroindex=sort([indz indzer],2,‘ascend‘);

Matlab - 求數組的零值與過零點索引