我有两个相同尺寸的矢量sig1和sig2,两者都有超过100万个数据。在条件是每当矢量值低于阈值时,指针将指向交替矢量(切换)。这样我想从指针的值中形成一个新的向量sws。下面的代码工作正常,唯一的问题是,它需要很长时间。有没有其他方法来加速代码? :
thresh = -70;
i=1;
flag1 = 1; % 1 means sig1, 0 means sig2
flag2 = 0; % 1 means switch happened in this loop, 0 means no switch happened in this loop
while(i <= numel(sws))
if(flag1 == 1)
sws(i)=sig1(i);
else
sws(i)=sig2(i);
end
if(sws(i) < thresh)
if(flag2==1)
i=i+1;
else
flag1 = ~flag1;
end
flag2= ~flag2;
else
flag2 = 0;
i=i+1;
end
end