矢量之间的条件切换

时间:2015-08-02 08:35:53

标签: matlab

我有两个相同尺寸的矢量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

0 个答案:

没有答案