Concatenating a signal given its segments' limits

1 Ansicht (letzte 30 Tage)
Paramonte
Paramonte am 2 Dez. 2023
Kommentiert: Voss am 3 Dez. 2023
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

Akzeptierte Antwort

Voss
Voss am 2 Dez. 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
  2 Kommentare
Paramonte
Paramonte am 3 Dez. 2023
Many thanks, It works indeed! Cheers!
Voss
Voss am 3 Dez. 2023
You're welcome!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by