Concatenating a signal given its segments' limits

1 view (last 30 days)
Hello there:
I have this vector (a small sample) :
ww =
10 15
16 22
33 44
45 50
51 60
70 80
These are intervals that delineate a biomedical signal in segmants. For instance segment#1 delineates the signal beteewn the samples 10 and 15, segmnent#2 delineates the signal beteewn the samples 16 and 22. Segmnent#3 delineates the signal beteewn the samples 33 and 44. And so on. We want the segments whose distance is less than N samples to be concatenated. For isnatance for N=1 the result would be:
ww_new =
10 22
33 60
70 80
Thank you for your time!
Regards

Accepted Answer

Voss
Voss on 2 Dec 2023
ww = [
10 15
16 22
33 44
45 50
51 60
70 80
];
N = 1;
to_keep = ww(2:end,1)-ww(1:end-1,2)>N;
to_keep = [[true; to_keep] [to_keep; true]];
ww_new = reshape(ww(to_keep),[],2)
ww_new = 3×2
10 22 33 60 70 80

More Answers (0)

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!