I have an array vector (signal ) contains vales ones and zeros. e.g data set as follow Data1 = [1,0,1,0,1,0,1,0,1,0]; I want to reverse the sign (phase) of values at zero-crossing points to become as follow Data1=[1, 0,-1, 0, 1, 0,-1, 0, 1, 0] do you know an elegant way to do that on a large data set?
John Williams answered .
2025-11-20
>> Data1 = [1,0,1,0,1,0,1,0,1,0] Data1 = 1 0 1 0 1 0 1 0 1 0 >> Data2 = Data1.*cumprod([1,diff(Data1==0)]) Data2 = 1 0 -1 0 1 0 -1 0 1 0