Hello everybody,

I am trying to extract parts of a signal that meet a certain condition (boolean true) and save them into individual vectors.

Lets say i have a testvector:

`testvector = [0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 0 0 1];`

Iterating through the signal, if the index is true, I want to check if:

- i-3 positions are 0 (condition1)
- i+5 positions are 1 (condition2)

If both conditions are true, I would like to extract this part of the signal, like mentioned earlier.

Concerning my testvector, due to my conditions there is supposed to be exactly one part to be extracted:

`testvector(4:12)`

Until now, I've tried the following without success:

`values=[];for i=4:numel(testvector) if testvector(i)==1 buff1 = i-3; buff2 = i+5; for k=buff1:1:(i-1) values = [values, testvector(k)]; if any(values) values(end) = []; break elseif length(values)>3 break end end for k=i:1:buff2 values = [values, testvektor(k)]; if any(values) break elseif buff2 > numel(testvektor) break elseif (length(values)>10) continue end end new = [new, testvektor(i)] endend`

So far, I have no idea how to automatically construct a new vector each time the conditions are met and a part of the signal is extracted.

Thank you in advance, every help is highly appreciated!

## Best Answer